查看: 417|回复: 0

[评测分享] 【STM32H735-DK 测评】使用vscode创建开发环境

[复制链接]
  • TA的每日心情
    开心
    昨天 09:32
  • 签到天数: 105 天

    连续签到: 6 天

    [LV.6]常住居民II

    发表于 2024-3-13 18:55:03 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 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工程:
    微信截图_20240313184645.png
    2、打开vscode,安装好插件如下:
    微信截图_20240313185303.png
    必装插件为c/c++、Cortex-Debug。
    3、接下来重要的工作就是配置编译、下载、调试,这才是最需要细心的,也是我遇到最困难的。

    1)打开工程后,首先要另存为工作区。然后按ctrl+shift+P的组合按键,在搜索栏里输入c/c++然后选择UI配置,如下图:
    微信截图_20240313195751.png
    2)在UI界面按下图所示,填入arm-gcc的文件绝对路径、选择win-arm-gcc、头文件路径、以及宏定义:
    微信截图_20240313200148.png
    3)保存后,会生成c_cpp_properities.json文件,在.vscode下面。后面我们也可以直接修改这个json文件。其中的头文件路径、宏定义,我们可以参考makefile来填写:
    微信截图_20240313200534.png
    经过这样配置后,我们进行终端。输入命令make如果没有红色字体的报错,那么make就配置成功了:
    微信截图_20240313201054.png
    4)接下来,再配置烧录工具。vscode可以有openocd与pyocd两个工具,他们互有优点,openocd速度快,有网友测试过,openocd 大约是pyocd的10倍左右。但是openocd支持的芯片比较少,但是pyocd比openocd要多很多。我现在使用的stm32H735openocd是可以支持的,所以这里使用openocd来下载。按ctrl+shif+p在搜索框输入task进入task.json配置中
    微信截图_20240313203013.png
    其解释如下图:
    微信截图_20240313203718.png
    其实我们把上面的下载命令为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来执行:
    微信截图_20240313204859.png
    按下载就可以自己下载了,如下图所示:
    微信截图_20240313205032.png
    到此flash就完成了,这里的重点就是如何配置两个.cfg文件,以及固件的路径,我就在这里遇到好多问题。因此特此记录一下,加深印象。
    6)接下来我花的时间最多的就是debug这里了,纠结了半天才调出来:
    点击dubge这个插件,在右下角点击添加配置。如果已经配置好了,就修改lunch.json。
    1. <font size="4">{
    2.     // 使用 IntelliSense 了解相关属性。
    3.     // 悬停以查看现有属性的描述。
    4.     // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    5.     "version": "0.2.0",
    6.     "configurations": [
    7.         {
    8.             "cwd": "${workspaceRoot}",
    9.             "executable": "./build/vscode_learn.elf", //固件的位置
    10.             "name": "Debug with OpenOCD",
    11.             "request": "launch",
    12.             "type": "cortex-debug",
    13.             "servertype": "openocd", //指明opeocd
    14.             "configFiles": [
    15.                 "C:/OpenOCD/share/openocd/scripts/interface/stlink-v2.cfg", //这里与烧写不同,需要写全路径!
    16.                 "C:/OpenOCD/share/openocd/scripts/target/stm32h7x.cfg"   //这里与烧写不同,需要写全路径!
    17.             ],"svdFile": "./STM32H735.svd"                 //如果没有这个文件,则看不到外设

    18.         },


    19.     ]
    20. }</font>
    复制代码
    如上面代码所注明,我总结路径需要写完,要不然搞不定。
    写好配置文件后就可以在菜单RUN->start debugging开始调试,也可以按F5开始调试:
    微信截图_20240313211138.png
    致此,所有的开发环境全部创建好,当然还有更加细致的配置组合,比如编译+下载等等,openocd的使用我也还在学习之中。
    【总结】
    通过一天的学习摸索,基本上掌握了vscode+openocd的环境搭工作。使用这个组合,相比keil、stm32cubeIDE的体验感要好一些,难点就是入门需要花费一定的时间。如果熟悉了,用起来还是比较爽的。
    微信截图_20240313202650.png
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-5-5 04:27 , Processed in 0.120013 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.