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

对于单片机开发,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的位置(编辑一下即可)

  1. 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文件

内容

javascript 复制代码
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Openocd",
      "executable": "${workspaceRoot}/rt-thread.elf",
      "request": "launch",
      "type": "cortex-debug",
      "runToEntryPoint": "main",
      "targetId": "STM32F103ZE", // 芯片型号
      "servertype": "openocd",
      "configFiles": [
        // 前面章节提到过的脚本
        "D:/OpenOCD-20240916-0.12.0/share/openocd/scripts/interface/ftdi/ft2232h_swd.cfg",
        // 根据自己芯片系列进行选择
        "D:/OpenOCD-20240916-0.12.0/share/openocd/scripts/target/stm32f1x.cfg"
      ],
      // ENV路径里面的系列调试软件,这里是ARM芯片;
      // RISCV需选其它的,如riscv32-unknown-elf-gdb.exe, 可能需要从芯片官方提供的库里寻找
      "gdbPath": "D:/env-windows-v2.0.0/env-windows/tools/gnu_gcc/arm_gcc/mingw/bin/arm-none-eabi-gdb.exe"
    }
  ]
}

根据自己配置的路径,与芯片型号,进行配置。

注:对于HPM提供的编译链debug工具如下图所示:

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

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

3)修改rtconfig.py文件

javascript 复制代码
import os

# toolchains options
ARCH = 'arm'
CPU = 'cortex-m3'
CROSS_TOOL = 'gcc'

# cross_tool provides the cross compiler
# EXEC_PATH is the compiler execute path, for example, CodeSourcery, Keil MDK, IAR
PLATFORM = 'gcc'
EXEC_PATH = ''

if os.getenv('RTT_EXEC_PATH'):
    EXEC_PATH = os.getenv('RTT_EXEC_PATH')

PREFIX = 'arm-none-eabi-'
CC = PREFIX + 'gcc'
AS = PREFIX + 'gcc'
AR = PREFIX + 'ar'
CXX = PREFIX + 'g++'
LINK = PREFIX + 'gcc'
TARGET_EXT = 'elf'
SIZE = PREFIX + 'size'
OBJDUMP = PREFIX + 'objdump'
OBJCPY = PREFIX + 'objcopy'

# add
DEVICE = ' -mcpu=cortex-m3 -mthumb -ffunction-sections -fdata-sections'
CFLAGS = DEVICE + ' -Dgcc'
AFLAGS = ' -c' + DEVICE + ' -x assembler-with-cpp -Wa,-mimplicit-it=thumb '
LFLAGS = DEVICE + ' --specs=nano.specs -Wl,--print-memory-usage,--gc-sections,-Map=rt-thread.map,-cref,-u,Reset_Handler -T linkscripts//STM32F103ZE//link.lds'
CFLAGS += ' -O2 -gdwarf-2 -g'
AFLAGS += ' -gdwarf-2'

# DEVICE = ''
# CFLAGS = ''
# AFLAGS = ''
# LFLAGS = '-T linkscripts//STM32F103ZE//link.lds'

CPATH = ''
LPATH = ''
CXXFLAGS = ''
POST_ACTION = ''

rtconfig.py配置请参考

RT-Thread-rt thread studio使用的一些问题和dlmodule编译的疑惑RT-Thread问答社区 - RT-Thread

4)scons编译

最后,点击三角形符号,连接好自己的板子(SWD连接方式,见前面章节介绍),即可实现在线仿真调试。

4、最终效果

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

相关推荐
来块小鱼饼干(≧^.^≦)4 小时前
教你如何使用VSCode的EIDE插件开发STM32(包括任何ARM内核芯片)最详细教程
ide·vscode·stm32·arm·keil
请叫我欧皇i6 小时前
保姆级教程vscode创建uniapp vue3+ts+pinia项目并实现自动导入、打包功能
ide·vscode·uni-app
应用市场11 小时前
VSCode + AI Agent实现直接编译调试:告别Visual Studio的原理与实践
人工智能·vscode·visual studio
明道源码14 小时前
Android Studio 创建 Android 模拟器
android·ide·android studio
明道源码14 小时前
Android Studio 使用教程
android·ide·android studio
Caesar Zou1 天前
ssh远程连接服务器,vscode不显示claude
服务器·vscode·ssh
JoannaJuanCV1 天前
vscode debug Transformer源码说明
ide·vscode·transformer·qwen3
炘东5921 天前
让Pycharm的Terminal(终端)进入创建好的虚拟环境
ide·python·pycharm
LostSpeed1 天前
build openocd on win10 + mysys2-mingw64
openocd
ZJU_统一阿萨姆1 天前
Windows系统VSCode配置Rust开发环境(超详细保姆级教程)
windows·vscode·rust