(五)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 小时前
AI Agent(智能体)的输出格式应该从 Markdown 转向 HTML吗?
前端·人工智能·rust·编辑器·html·prompt
ONLYOFFICE6 小时前
如何通过创建插件,自动化Office文档中的重复操作
自动化·编辑器·onlyoffice·插件
shimly1234569 小时前
vscode 很难删除 copilot,如何关闭 copilot 功能?
ide·vscode·copilot
Waay10 小时前
Linux Shell 知识点考评(三):awk文本分析(附答案)
linux·服务器·编辑器
qq_3961534511 小时前
idea + claude code [bate] 初体验
ide·idea
北冥有羽Victoria11 小时前
Django中间件实战:FBV/CBV日志全兼容
数据库·vscode·后端·python·django·sqlite·开源
iCxhust12 小时前
8086/8088单板机VSCode集中环境开发编译(第二版整理)
ide·vscode·嵌入式硬件·编辑器·嵌入式·微机原理·8086最小系统
努力的小帅13 小时前
使用 Tailscale 实现 Ubuntu 远程开发(VSCode Remote SSH + NoMachine)
linux·ide·vscode·ubuntu·编辑器·copilot
开发者联盟league13 小时前
解决vscode默认终端log日志输出中文乱码的问题
ide·vscode·编辑器
2501_9160074713 小时前
XCode 15 IDE新特性:苹果集成开发环境全面升级,提升编程效率与体验
ide·vscode·macos·ios·个人开发·xcode·敏捷流程