STM32单片机非常强大,大多数教程都是使用 keil 编译器,keil 是收费的而 gcc 是开源免费的。这里介绍一些使用 gcc + vscode 开发单片机程序的经验。(这里不解释 gcc 是什么)
环境准备
gcc
我有个习惯:尽量使用免安装版软件,直接解压到软件安装目录中,添加环境变量即可使用,这样即使重装系统也不必重装软件。
把 arm-none-eabi-gcc 的 bin/ 目录添加到环境变量 Path 中就算安装完成了。打开命令行执行
arm-none-eabi-gcc -v
显示出版本信息就说明 arm-none-eabi-gcc 可以使用了。
make
我使用的 make 是从 mingw-w64 中复制出来的。
下载的 make 工具同样添加到环境变量 Path 中即可使用。
vscode
vscode 仅仅是个文本编辑器,没有它也能开发(txt 写代码,命令行编译)。
软件目录下新建文件夹 data/ 可以使 vscode 完全不使用 C 盘空间,所有的缓存文件都会生成在 data/ 内。附我使用的 Vscode:
已经安装了以下扩展程序:
编译链接过程
无话可说……
创建空工程
一个 ".vscode" 文件夹装一些配置,"boot" 装启动单片机的汇编文件,"cmsis" 装官方提供的源文件,"inc" 装头文件,"src" 装源文件,"output" 装输出文件,再来一个 makefile 一个链接脚本就完成了。完全没有多余的东西(txt 写代码,命令行编译的话可以删掉".vscode")。
在 makefile 所在的目录执行 "make" 就编译好了。
J-Link烧录和调试
.vscode/launch.json 里写入
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Cortex Debug",
"type": "cortex-debug",
"cwd": "${workspaceRoot}",
"executable": "${workspaceFolder}\output\template.elf",
"request": "launch",
"servertype": "jlink",
"device": "STM32F103ZE",
"interface": "swd",
"preLaunchTask": "Compile"
}
],
}
.vscode/tasks.json 里写入
{
"version": "2.0.0",
//每次执行都不启动一个新的控制台
"presentation": {
"reveal": "always",
"panel": "shared", //"new",
"echo": true
},
//设置环境变量
"options": {
"env": {
//"Path": "%Path%;D:\ProgramFiles\MinGW64\bin",
"LOCAL_SRC_HOME": "${workspaceRoot}"
}
},
//任务列表
"tasks": [
{
"label": "Compile",
"command": "make",
"args": [],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
安装 J-Link 驱动后,把 J-Link 添加到环境变量 Path 中,点击 F5 就能仿真了。
还可以监视指定内存、变量、寄存器,反汇编指定函数 ……
彻底告别 keil。
STM32单片机非常强大,大多数教程都是使用 keil 编译器,keil 是收费的而 gcc 是开源免费的。这里介绍一些使用 gcc + vscode 开发单片机程序的经验。(这里不解释 gcc 是什么)
环境准备
gcc
我有个习惯:尽量使用免安装版软件,直接解压到软件安装目录中,添加环境变量即可使用,这样即使重装系统也不必重装软件。
把 arm-none-eabi-gcc 的 bin/ 目录添加到环境变量 Path 中就算安装完成了。打开命令行执行
arm-none-eabi-gcc -v
显示出版本信息就说明 arm-none-eabi-gcc 可以使用了。
make
我使用的 make 是从 mingw-w64 中复制出来的。
下载的 make 工具同样添加到环境变量 Path 中即可使用。
vscode
vscode 仅仅是个文本编辑器,没有它也能开发(txt 写代码,命令行编译)。
软件目录下新建文件夹 data/ 可以使 vscode 完全不使用 C 盘空间,所有的缓存文件都会生成在 data/ 内。附我使用的 Vscode:
已经安装了以下扩展程序:
编译链接过程
无话可说……
创建空工程
一个 ".vscode" 文件夹装一些配置,"boot" 装启动单片机的汇编文件,"cmsis" 装官方提供的源文件,"inc" 装头文件,"src" 装源文件,"output" 装输出文件,再来一个 makefile 一个链接脚本就完成了。完全没有多余的东西(txt 写代码,命令行编译的话可以删掉".vscode")。
在 makefile 所在的目录执行 "make" 就编译好了。
J-Link烧录和调试
.vscode/launch.json 里写入
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Cortex Debug",
"type": "cortex-debug",
"cwd": "${workspaceRoot}",
"executable": "${workspaceFolder}\output\template.elf",
"request": "launch",
"servertype": "jlink",
"device": "STM32F103ZE",
"interface": "swd",
"preLaunchTask": "Compile"
}
],
}
.vscode/tasks.json 里写入
{
"version": "2.0.0",
//每次执行都不启动一个新的控制台
"presentation": {
"reveal": "always",
"panel": "shared", //"new",
"echo": true
},
//设置环境变量
"options": {
"env": {
//"Path": "%Path%;D:\ProgramFiles\MinGW64\bin",
"LOCAL_SRC_HOME": "${workspaceRoot}"
}
},
//任务列表
"tasks": [
{
"label": "Compile",
"command": "make",
"args": [],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
安装 J-Link 驱动后,把 J-Link 添加到环境变量 Path 中,点击 F5 就能仿真了。
还可以监视指定内存、变量、寄存器,反汇编指定函数 ……
彻底告别 keil。
举报