linux下调试stm32,配置VScode编译、调试STM32(一)手动配置makefile和debug

做嵌入式的朋友们都应该有过想要有个功能强大的IDE或者编辑器,Keil MDK5、IAR EWARM是用的比较普遍的平台了,但是两者在编辑器方面都比较弱势,当然可以设置 或者使用外部编辑器,像Sourceinsight、notePad++这样,但毕竟需要切换回来进行Build、Debug,非常麻烦。

VScode从发布至今口碑一直很好,而且里面有非常多的插件,比如彩虹括号、Code Runner、Git、各种语言的支持包等,都非常好用,并且,启动速度快,界面和使用方式和VS很像,各种好看的主题配色。像Keil、IAR不支持深色主题,看久了真的是眼睛痛(如果只把editor背景设为深色会觉得很不协调)。

前段时间刚好研究了一下linux下用makefile进行编译链接,对编译、链接有了一定的了解。这两天正好在玩STM32的CubeMX,发现里面可以自动生成makefile,就产生了在windows平台下,使用VScode和makefile编译链接,GDB调试的想法。

1. 需要安装的环境:

minGW:用到里面的make工具;

GNU Tools ARM Embedded(arm-none-eabi):用到里面的GCC工具(不知道为什么里面没有make,所以使用了minGW的make);

Jlink套件:用于debug;

STM32 CubeMX:用于生成工程模板和makefile文件;

VScode,以及其插件C/C++(microsoft)。网上的教程需要许多插件,比如Clang、Cmake、ARM之类的,这里都没有用到,我还特意把其他插件都禁用测试过。

Git Bash:用于提供一个minGW的终端,在安装minGW是会带有msys,但是我没有测试过。

2. 配置系统环境变量

配置系统环境变量的目的是可以通过命令或者文件名之直接访问系统环境变量下的文件,

将三个安装目录加入到系统环境变量(不是用户环境变量):

C:\Program Files (x86)\CodeBlocks\MinGW\bin;D:\LLVM\bin;

C:\Program Files (x86)\GNU Tools ARM Embedded\8 2019-q3-update\bin;

C:\Program Files (x86)\SEGGER\JLink_V512f;

jlink的目录可以不加,加入是为了做后面的自动开启Jlink GDB Server用。

3. 准备工程模板

这里只做一个最简要的工程,使用CubeMX创建工程,在Project Manager中配置Toolchain为makefile。然后配置项目名称、位置之类。

配置时钟、引脚功能。

点击GENERATE CODE进行生成代码。

生成完成后使用VScode打开工程目录,在main.c中添加一些代码,我写的是两个LED闪烁的程序。注意要在CubeMX规定的用户代码区域中添加代码,否则重新生成工程会被覆盖。写好后,保存。

3. 配置默认终端

在终端里,选择默认终端:

选择Git Bash。这里选择这个终端的原因是用makefile来编译的指令“make”是minGW的指令,cmd是无法识别的。另外,CubeMX生成的makefile里也会有一些linux指令,使用minGW终端可以解决这个问题。不过,在后面的tasks.json、launch.json中的command要注意使用shell命令。

4. 配置debug、make

之前完成的工程应该是这样的:

如果没有.vscode文件夹没关系,自己新建这个文件夹,然后在里面新建这两个文件:

launch是用来载入debug的配置文件,tasks是配置的任务,可以单独执行(ctrl+shift+B)。

先在tasks中创建一个Build任务,让他通过makefile进行编译、链接,生成烧录文件。然后创建一个Clean任务,可以清空build文件。在tasks.jso

你可能感兴趣的:(linux下调试stm32)