(五)FT2232HL高速调试器之--三步实现STM32的VSCODE在线仿真工程搭建 ...

打印 上一主题 下一主题

主题 1060|帖子 1060|积分 3180

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
对于单片机开发,rtthread studios 与 vscode,鱼与熊掌可以兼得否,实在是可以的,下面通过三个步骤,实现基于FT2232HL高速调试器的,stm32的VSCODE在线仿真工程的搭建。
1、软件下载与VSCODE插件安装设置

软件下载
1)Openocd下载
链接:https://sysprogs.com/files/auxiliary/openocd/com.sysprogs.arm.openocd/openocd-20240916.7z
解压缩放置到D盘根目录,也可以是任一别的目录
2)ENV工具下载,RTThread官网下载,也解压缩放置在D盘根目录,别的亦可
3)
VSCODE插件安装
1)Cortex-Debug

并设置openocd路径,指到D盘放置openocd.exe的位置(编辑一下即可)

2) Rt-Thread Assistant For VSCode

并设置ENV路径,指到D盘放置ENV.exe的位置

2、用RT-THREAD Studios 构建STM32工程

选择本身手头的STM32开发板,建立一个rtthread studios工程,并编译。
此处省略2000个字。

3、设置仿真环境

1)创建launch.json文件
用vscode打开工程文件夹,在工程文件夹下,增长一个.vscode文件夹,内里放一个launch.json文件


内容
  1. {
  2.   "version": "0.2.0",
  3.   "configurations": [
  4.     {
  5.       "name": "Openocd",
  6.       "executable": "${workspaceRoot}/rt-thread.elf",
  7.       "request": "launch",
  8.       "type": "cortex-debug",
  9.       "runToEntryPoint": "main",
  10.       "targetId": "STM32F103ZE", // 芯片型号
  11.       "servertype": "openocd",
  12.       "configFiles": [
  13.         // 前面章节提到过的脚本
  14.         "D:/OpenOCD-20240916-0.12.0/share/openocd/scripts/interface/ftdi/ft2232h_swd.cfg",
  15.         // 根据自己芯片系列进行选择
  16.         "D:/OpenOCD-20240916-0.12.0/share/openocd/scripts/target/stm32f1x.cfg"
  17.       ],
  18.       // ENV路径里面的系列调试软件,这里是ARM芯片;
  19.       // RISCV需选其它的,如riscv32-unknown-elf-gdb.exe, 可能需要从芯片官方提供的库里寻找
  20.       "gdbPath": "D:/env-windows-v2.0.0/env-windows/tools/gnu_gcc/arm_gcc/mingw/bin/arm-none-eabi-gdb.exe"
  21.     }
  22.   ]
  23. }
复制代码
根据本身设置的路径,与芯片型号,进行设置。
注:对于HPM提供的编译链debug工具如下图所示:

 2)设置编译路径环境变量 EXEC_PATH

注:对于risc-v类芯片,如hpm,也要设置相应的环境变量
      

3)修改rtconfig.py文件
  1. import os
  2. # toolchains options
  3. ARCH = 'arm'
  4. CPU = 'cortex-m3'
  5. CROSS_TOOL = 'gcc'
  6. # cross_tool provides the cross compiler
  7. # EXEC_PATH is the compiler execute path, for example, CodeSourcery, Keil MDK, IAR
  8. PLATFORM = 'gcc'
  9. EXEC_PATH = ''
  10. if os.getenv('RTT_EXEC_PATH'):
  11.     EXEC_PATH = os.getenv('RTT_EXEC_PATH')
  12. PREFIX = 'arm-none-eabi-'
  13. CC = PREFIX + 'gcc'
  14. AS = PREFIX + 'gcc'
  15. AR = PREFIX + 'ar'
  16. CXX = PREFIX + 'g++'
  17. LINK = PREFIX + 'gcc'
  18. TARGET_EXT = 'elf'
  19. SIZE = PREFIX + 'size'
  20. OBJDUMP = PREFIX + 'objdump'
  21. OBJCPY = PREFIX + 'objcopy'
  22. # add
  23. DEVICE = ' -mcpu=cortex-m3 -mthumb -ffunction-sections -fdata-sections'
  24. CFLAGS = DEVICE + ' -Dgcc'
  25. AFLAGS = ' -c' + DEVICE + ' -x assembler-with-cpp -Wa,-mimplicit-it=thumb '
  26. LFLAGS = DEVICE + ' --specs=nano.specs -Wl,--print-memory-usage,--gc-sections,-Map=rt-thread.map,-cref,-u,Reset_Handler -T linkscripts//STM32F103ZE//link.lds'
  27. CFLAGS += ' -O2 -gdwarf-2 -g'
  28. AFLAGS += ' -gdwarf-2'
  29. # DEVICE = ''
  30. # CFLAGS = ''
  31. # AFLAGS = ''
  32. # LFLAGS = '-T linkscripts//STM32F103ZE//link.lds'
  33. CPATH = ''
  34. LPATH = ''
  35. CXXFLAGS = ''
  36. POST_ACTION = ''
复制代码
 rtconfig.py设置请参考
RT-Thread-rt thread studio使用的一些标题和dlmodule编译的疑惑RT-Thread问答社区 - RT-Thread
4)scons编译
 


最后,点击三角形符号,毗连好本身的板子(SWD毗连方式,见前面章节先容),即可实现在线仿真调试。

4、最终结果

如下图,便可以实现在线仿真调试了。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

自由的羽毛

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表