单片机
返回首页

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可以完成编译,下载和调试。最后选择了对自己而言最轻量化的方案,具有极简的配置过程。


由于细致讲解内容太长,因此简化过程,将整体思路带过一下。


概览

所需工具

  1. 硬件调试器 jlink

  2. 代码编辑器 vscode

  3. stm32代码配置生成软件 stm32cubemx

  4. 程序下载软件 jflash

  5. 程序调试软件 ozone

配置环节

  1. 在.vscode文件夹中放一个tasks.json文件(后期直接复制修改工程名即可)

  2. 在工程文件夹下面放一个名为jflash.jflash的工程文件(后期直接复制即可)

  3. 在工程文件夹下面放一个名为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文件,其中放入四个命令

  1. build

  2. rebuild

  3. jlink-flash

  4. 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按钮,调试很方便)



进入单片机查看更多内容>>
相关视频
  • 【TI MSPM0 应用实战】智能小车+工业角度编码器+血氧仪+烟雾探测器!硬核参考设计详解!

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

  • 直播回放: Microchip Timberwolf™ 音频处理器在线研讨会

  • 基于灵动MM32W0系列MCU的指夹血氧仪控制及OTA升级应用方案分享

精选电路图
  • 1瓦线性调频增强器

  • 1瓦四级调频发射机

  • 500W MOS场效应管电源逆变器,12V转110V/220V

  • 红外开关

  • LM317过压保护

  • 0-30V/20A 大功率稳压电源(采用LM338)

    相关电子头条文章