VSCode与JLink极简配置方案,STM32开发指南
2025-09-19 来源:cnblogs
动机
keil软件的功能强大,但代码编辑却又显得古板和不方便。vscode作为专业的轻量级代码编辑工具,汇集了大量插件辅助。因此试着考虑将stm32的开发往vscode上进行迁移。
前期调研和测试了多种插件方案,包括Keil Assistant, EIDE, stm32-for-vscode等。也尝试过自己搭建工具链,包括arm-none-eabi,make,openocd等。配合st-link和jlink可以完成编译,下载和调试。最后选择了对自己而言最轻量化的方案,具有极简的配置过程。
由于细致讲解内容太长,因此简化过程,将整体思路带过一下。
概览
所需工具
硬件调试器 jlink
代码编辑器 vscode
stm32代码配置生成软件 stm32cubemx
程序下载软件 jflash
程序调试软件 ozone
配置环节
在.vscode文件夹中放一个tasks.json文件(后期直接复制修改工程名即可)
在工程文件夹下面放一个名为jflash.jflash的工程文件(后期直接复制即可)
在工程文件夹下面放一个名为ozone.jdebug的工程文件(后期直接复制即可)
如图:


配置
安装arm-none-eabi工具链
arm-none-eabi 10.3版本下载

安装或者下载zip文件解压,然后将里面bin文件夹的地址放到环境变量中。
该工具链有很多版本,最新的是14.2.rel1,但是体积大,编译慢点,推荐经典的10.3版本。
注意:10.3版本编译的时候可能会有.ld文件问题,需要将“(readonly)”替换成“()”即可。或者下载11以上的版本。
安装make工具
MinGW-w64下载
我下载的make是3.81的版本,下载后将里面bin文件夹的地址放到环境变量中。
安装stm32cubemx
stm32cubemx下载

注册填写后下载安装
安装jlink系列软件包
jlink软件包下载


补充:上方过程网上有很多教程,不再赘述。
开发
生成makefile工程
stm32cubemx软件中最后的工程生成方式选择makefile
vscode配置
在.vscode文件夹中增加tasks.json文件,其中放入四个命令
build
rebuild
jlink-flash
jlink-debug-ozone
具体代码如下 (用的stm32f103c8t6芯片案例)
1.build部分
{
'type': 'shell',
'label': 'build',
'command': 'make',
'args': [
'-j16'
],
'problemMatcher': [],
},
2.rebuild部分
{
'type': 'shell',
'label': 'rebuild', // clean+build
'command': 'rmdir -r build; make -j16' ,
'problemMatcher': [],
},
其实就是删除build文件夹,然后重新生成build文件夹
3.jlink-flash
{
'type': 'shell',
'label': 'jlink-flash',
'command': 'JFlash',
'args': [
'-openprj', 'jflash.jflash', // 注意这个文件需要准备好
'-open', '${workspaceFolder}/build/xxx.hex,0x8000000', // 修改xxx为当前工程名
'-auto',
'-startapp',
'-exit'
],
'problemMatcher': [],
},
4.jlink-debug-ozone
{
'type': 'shell',
'label': 'jlink-debug-ozone',
'command': 'ozone',
'args': [
'-project', '${workspaceFolder}/ozone.jdebug', // // 注意这个文件需要准备好
'-device', 'stm32f103c8', // 指定芯片
'-programfile', '${workspaceFolder}/build/xxx.elf' // 修改xxx为当前工程名
],
'problemMatcher': [],
}
5. 完整代码
{
'version': '2.0.0',
'tasks': [
{
'type': 'shell',
'label': 'build',
'command': 'make',
'args': [
'-j16'
],
'problemMatcher': [],
},
{
'type': 'shell',
'label': 'rebuild', // clean+build
'command': 'rmdir -r build; make -j16' ,
'problemMatcher': [],
},
{
'type': 'shell',
'label': 'jlink-flash',
'command': 'JFlash',
'args': [
'-openprj', 'jflash.jflash', // 注意这个文件需要准备好
'-open', '${workspaceFolder}/build/xxx.hex,0x8000000', // 修改xxx为当前工程名
'-auto',
'-startapp',
'-exit'
],
'problemMatcher': [],
},
{
'type': 'shell',
'label': 'jlink-debug-ozone',
'command': 'ozone',
'args': [
'-project', '${workspaceFolder}/ozone.jdebug', // // 注意这个文件需要准备好
'-device', 'stm32f103c8', // 指定芯片
'-programfile', '${workspaceFolder}/build/xxx.elf' // 修改xxx为当前工程名
],
'problemMatcher': [],
}
]
}
6.快捷方式
为了点击命令按钮方便,可以下载Task Runner插件

效果如下:

使用方式
1.在makefile中增加c的源文件和h头文件地址(如果有的话)
2.点击build按钮完成编译
3.点击jlink-flash按钮完成下载(自动弹出jflash软件窗口,下载很快)

4. 点击jlink-debug-ozone按钮实现调试(自动弹出ozone软件窗口,每次build后都会提示文件更新,不用每次重新点击jlink-debug-ozone按钮,调试很方便)

- Keil5安装+STM32CubeMX安装+VSCode辅助开发教程
- Linux 下 VScode + gcc + cmake 实现 stm32 标准库开发 (f103)
- VScode如何打造STM32开发环境保姆级教程
- STM32开发之VSCode+GDB下载调试
- 如何使用vscode开发 stc51单片机
- 为VSCode搭建STM32开发环境 零基础教程
- VSCode环境下STM32开发环境搭建指南
- vscode 配置stm32 cpp settings.json
- VScode开发STM32/GD32单片机-MakeFile工程JlinkRTT配置
- ubuntu下使用Code::blocks + JLink调试stm32f103c8
- 六大全新产品系列推出,MCX A微控制器家族迎来创新
- 意法半导体全新STM32C5系列,重新定义入门级微控制器性能与价值,赋能万千智能设备
- 模组复用与整机重测在SRRC、CCC、CTA/NAL认证中的实践操作指南
- 从控制到系统:TI利用边缘AI重塑嵌入式MCU的边界
- 有源晶振与无源晶振的六大区别详解
- 英飞凌持续巩固全球微控制器市场领导地位
- 使用 Keil Studio for Visual Studio Code开发 STM32 设备
- 蓝牙信道探测技术原理与开发套件实践
- Microchip 推出生产就绪型全栈边缘 AI 解决方案,赋能MCU和MPU实现 智能实时决策
- LoRa、LoRaWAN、NB-IoT与4G DTU技术对比及工业无线方案选型分析




