TA的每日心情 | 开心 昨天 09:09 |
---|
签到天数: 301 天 连续签到: 32 天 [LV.8]以坛为家I
|
本帖最后由 eefocus_3914144 于 2024-3-13 21:11 编辑
【前言】
昨天偶然看了一下Rust来开发stm32H7的教程,相比keil、stm32cubeIDE他的流畅度,代码提示等等都高出不少。因此今天花了一天的时间把环境跑了一下。其实这方面的教程有很多,我纯是为了加深印象,同时也方便以后复习,特记录如下。
【软件准备】
在win11下面建立基于voscode的开发环境,需要下载这五个软件:
1、stm32cubeMAX。用于配置生成工程。现在stm32的配置使用这个工具那真是太方便了。
2、vscode。这个不用多说。
3、mingw64。这个软件提供了make。
4、openocd。这个软件提供了下载、调试的功能。
5、arm-gcc。这个软件是编译的工具。
【安装】
前面两个软件的安装是有大把的教程,安装也不难。而mingw64、openocd、arm-gcc是不需要安装的,只需要解压后把bin目录配置到环境变量里面就行了。所以安装软件,我这里就不做过多的描述。
【创建工程】
1、使用stm32cubeMAX创建基于stm32H735开发板的工程。然后生成makefile工程:
2、打开vscode,安装好插件如下:
必装插件为c/c++、Cortex-Debug。
3、接下来重要的工作就是配置编译、下载、调试,这才是最需要细心的,也是我遇到最困难的。
1)打开工程后,首先要另存为工作区。然后按ctrl+shift+P的组合按键,在搜索栏里输入c/c++然后选择UI配置,如下图:
2)在UI界面按下图所示,填入arm-gcc的文件绝对路径、选择win-arm-gcc、头文件路径、以及宏定义:
3)保存后,会生成c_cpp_properities.json文件,在.vscode下面。后面我们也可以直接修改这个json文件。其中的头文件路径、宏定义,我们可以参考makefile来填写:
经过这样配置后,我们进行终端。输入命令make如果没有红色字体的报错,那么make就配置成功了:
4)接下来,再配置烧录工具。vscode可以有openocd与pyocd两个工具,他们互有优点,openocd速度快,有网友测试过,openocd 大约是pyocd的10倍左右。但是openocd支持的芯片比较少,但是pyocd比openocd要多很多。我现在使用的stm32H735openocd是可以支持的,所以这里使用openocd来下载。按ctrl+shif+p在搜索框输入task进入task.json配置中
其解释如下图:
其实我们把上面的下载命令为openocd -f interface/stlink-v2.cfg -f target/stm32h7x.cfg -c "program build/vscode_learn.hex verify reset exit",如果手工输入烧写,就是这串命令,只不过用json把他分割开来,具体的含义是指定下载器的配置文件为openocd下面的stlink-v2配置文件,MCU的配置文件为stm32h7x.cfg,烧写的固件路径 以及是否verif、烧写完后是否重起mcu,自行退出shell。
其中,两个配置文件在\OpenOCD\share\openocd\scripts目录下的interface、target下面,如果你看openocd是否支持这款芯片,就去这个目录下面查看是否有这个配置文件。如果没有,那就只能选择pyocd来烧录了。
5)这样配置好后,我们就可以在终端下面的RUN build task来选择编译、下载,也可以用快捷ctrl+shift+B来执行:
按下载就可以自己下载了,如下图所示:
到此flash就完成了,这里的重点就是如何配置两个.cfg文件,以及固件的路径,我就在这里遇到好多问题。因此特此记录一下,加深印象。
6)接下来我花的时间最多的就是debug这里了,纠结了半天才调出来:
点击dubge这个插件,在右下角点击添加配置。如果已经配置好了,就修改lunch.json。
- <font size="4">{
- // 使用 IntelliSense 了解相关属性。
- // 悬停以查看现有属性的描述。
- // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
- "version": "0.2.0",
- "configurations": [
- {
- "cwd": "${workspaceRoot}",
- "executable": "./build/vscode_learn.elf", //固件的位置
- "name": "Debug with OpenOCD",
- "request": "launch",
- "type": "cortex-debug",
- "servertype": "openocd", //指明opeocd
- "configFiles": [
- "C:/OpenOCD/share/openocd/scripts/interface/stlink-v2.cfg", //这里与烧写不同,需要写全路径!
- "C:/OpenOCD/share/openocd/scripts/target/stm32h7x.cfg" //这里与烧写不同,需要写全路径!
- ],"svdFile": "./STM32H735.svd" //如果没有这个文件,则看不到外设
- },
- ]
- }</font>
复制代码 如上面代码所注明,我总结路径需要写完,要不然搞不定。
写好配置文件后就可以在菜单RUN->start debugging开始调试,也可以按F5开始调试:
致此,所有的开发环境全部创建好,当然还有更加细致的配置组合,比如编译+下载等等,openocd的使用我也还在学习之中。
【总结】
通过一天的学习摸索,基本上掌握了vscode+openocd的环境搭工作。使用这个组合,相比keil、stm32cubeIDE的体验感要好一些,难点就是入门需要花费一定的时间。如果熟悉了,用起来还是比较爽的。
|
-
|