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 IDECortex-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 -
将
CoreDrivers文件夹(选择普通文件夹)和startup_stm32xxxx.s文件添加到项目资源
-
将构建配置下的链接脚本路径修改为工程文件夹下的
.ld文件
-
烧录配置选择
STLink -
点击项目属性右侧的编辑按钮,添加头文件目录和宏定义


注意这些东西可以在
Makefile里面找到
去除前面的
DI和末尾的\即可
注意可能会出现构建能正常进行,但是编辑器提示找不到宏的问题,这是因为构建使用的是交叉编译链,宏定义在项目配置中,而
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", |
注意将路径替换为自己的安装路径