VSCode
+CubeMX
+EIDE
环境配置
前置环境配置
OpenOCD
用于程序烧录,推荐使用0.11.0
版本(因为之前似乎因为版本过高出现问题)- (可选)
MinGW
提供编译环境 GNU Arm Embedded Toolchain
这个页面是10.3-2021.10
版本的,虽然已经被弃用,但是我用起来良好,主要是要这个:arm-none-eabi-gcc
交叉编译链
添加环境变量
-
xxx\OpenOCD\bin
-
xxx\GNU Arm Embedded Toolchain\10 2021.10\bin
-
xxx\mingw64\bin
具体取决于你的安装路径
配置 VSCode
首先下载以下插件
Embedded IDE
Cortex-Debug
如果安装了
Keil
可以配置ARMCC5
,但是似乎不需要将
EIDE.ARM.ARMCC5
和EIDE.ARM.ARMCC6
配置为Keil
安装目录下的ARM\ARMCC
目录路径似乎某些情况下安装了
Keil
也没有ARMCC
目录,这时候要自己安装Compiler Version 5
具体参考这篇 https://blog.csdn.net/2301_78033819/article/details/143795005
配置 arm-none-eabi-gcc
交叉编译链:
在
EIDE.ARM.GCC
下配置arm-none-eabi-gcc.exe
路径,要具体到.exe
将 EIDE.ARM.Options: Axf To Elf
勾上
点击左侧边框生成的 EIDE
插件
在设置编译链
里面如果看到相关编译链旁边显示√,则配置完成。
工程配置
-
使用
STM32CubeMX
中的Makefile
选项生成工程。 -
用
VSCode
打开刚才生成的工程目录,随后EIDE
- 新建项目 - 空项目 -Cortex-M
- 输入项目名称(需要和CubeMX
生成的文件夹名称相同) -
弹出文件夹选择窗口,选择工程目录的上一级文件夹(
../
)。 -
出现“项目文件夹已存在”的警告,点击
Yes
-
将
Core
Drivers
文件夹(选择普通文件夹
)和startup_stm32xxxx.s
文件添加到项目资源 -
将构建配置下的链接脚本路径修改为工程文件夹下的
.ld
文件 -
烧录配置选择
STLink
-
点击项目属性右侧的编辑按钮,添加头文件目录和宏定义
注意这些东西可以在
Makefile
里面找到去除前面的
D
I
和末尾的\
即可
注意可能会出现构建能正常进行,但是编辑器提示找不到宏的问题,这是因为构建使用的是交叉编译链,宏定义在项目配置中,而
C/C++
扩展的宏定义配置在插件配置里,所以缺少了两个宏定义解决方案
编辑
C/C++
扩展的配置文件c_cpp_properties.json
在defines
里面增加USE_HAL_DRIVER
和STM32F103xB
1 "defines": ["USE_HAL_DRIVER", "STM32F103xB"],就是上面
Defines
中的两项在设置中找到
Makefile: Configure On Open
勾选,可以在打开时自动根据Makefile
配置宏定义在
c_cpp_properties.json
里配置configurationProvider
为ms-vscode.makefile-tools
参考配置:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 {
"configurations": [
{
"name": "windows-gcc-x64",
"includePath": ["${workspaceFolder}/**"],
"compilerPath": "E:/mingw64/bin/gcc.exe",
"cStandard": "${default}",
"cppStandard": "${default}",
"intelliSenseMode": "windows-gcc-x64",
"compilerArgs": [""],
"configurationProvider": "ms-vscode.makefile-tools"
}
],
"version": 4
}
还有可能出现大概长下面那样的错误
1
2
3
4 ./startup_stm32f103xb.s: Assembler messages:
./startup_stm32f103xb.s:1: Error: junk at end of line, first unrecognized character is `-'
./startup_stm32f103xb.s:2: Error: bad size 0 in type specifier
./startup_stm32f103xb.s:2: Error: bad instruction `startup_stm32f103xb.s'此时删除项目根目录下的
.s
文件并重新生成即可
调试配置
在运行和调试中点击设置按钮,在 launch.json
中关注
1 | "configFiles": ["interface/stlink-v2.cfg", "target/stm32f1x.cfg"], |
注意将后面的 stm32fxxx
修改为自己对应的芯片型号
在 settings.json
中加入以下几行
1 | "cortex-debug.armToolchainPath": "xxx\\GNU Arm Embedded Toolchain\\10 2021.10\\bin", |
注意将路径替换为自己的安装路径