(五)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的位置(编辑一下即可)

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

内容

{"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文件

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、最终效果

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/493142.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【机器人】ATM 用于策略学习的任意点轨迹建模 RSS 2024 | 论文精读

文章提出了一种新的框架,名为Any-point Trajectory Modeling (ATM) ,称为任意点轨迹建模。 用于从视频中预测任意点的未来轨迹,从而在最少动作标签数据的情况下,学习稳健的视觉运动策略。 图中展示了三个案例,打开柜子…

linux----系统i/o

基本概念 在Linux系统中,I/O(Input/Output)即输入/输出,是操作系统与外部设备(如磁盘、终端、网络等)进行数据交互的机制。它涉及到从外部设备读取数据到内存(输入操作)&#xff0c…

Mac 开机 一闪框 mediasharingd

Mac 开机 一闪框一闪而过 mediasharingd ->系统偏好设置->共享->服务的复选框全部取消,保存。 重启解决。

纯前端实现更新检测

通过判断打包后的html文件中的js入口是否发生变化,进而实现前端的代码更新 为了使打包后的文件带有hash值,需要对vite打包进行配置 import { defineConfig } from vite; import vue from vitejs/plugin-vue; import { resolve } from path; import AutoI…

arcgisPro相接多个面要素转出为完整独立线要素

1、使用【面转线】工具,并取消勾选“识别和存储面邻域信息”,如下: 2、得到的线要素,如下:

基于SpringBoot+html+vue实现的林业产品推荐系统【源码+文档+数据库文件+包部署成功+答疑解惑问到会为止】

代码包运行启动成功!不管你有没有运行环境,哪怕你是刚买的新电脑,也包启动运行成功!有不懂的地方随便问!问到会为止! 【功能介绍】 基于SpringBootVue实现的林业产品推荐系统采用前后端分离的架构方式&…

【Java基础面试题024】Java中包装类型和基本类型的区别是什么?

回答重点 基本类型: Java中有8种基本数据类型(byte、short、int、long、float、double、char、boolean)他们是直接存储数值的变量,位于栈上(局部变量在栈上、成员变量在堆上,静态字段/类在方法区&#xf…

.net core在linux导出excel,System.Drawing.Common is not supported on this platform

使用框架 .NET7 导出组件 Aspose.Cells for .NET 5.3.1 asp.net core mvc 如果使用Aspose.Cells导出excel时,报错 : System.Drawing.Common is not supported on this platform 平台特定实现: 对于Windows平台,System.Drawing.C…

web自动化测试知识总结

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 一、自动化测试基本介绍 1、自动化测试概述: 什么是自动化测试?一般说来所有能替代人工测试的方式都属于自动化测试,即通过工…

怿星科技联合赛力斯举办workshop活动,进一步推动双方合作

12月18日,由怿星科技与赛力斯汽车联合举办的workshop活动在赛力斯五云湖总部展开,双方嘉宾围绕智能汽车发展趋势、行业前沿技术、汽车电子网络与功能测试等核心议题展开了深度对话与交流,并现场参观演示了多套前沿产品。怿星科技CEO潘凯、汽车…

【Flutter_Web】Flutter编译Web第二篇(webview篇):flutter_inappwebview如何改造方法,变成web之后数据如何交互

前言 欢迎来到第二篇文章,这也是第二个难题,就是原有的移动端本身一些页面H5的形式去呈现(webview),例如某些需要动态更换内容的页面,某些活动页面、支付页面,不仅仅做页面呈现,还包…

JS信息收集(小迪网络安全笔记~

免责声明:本文章仅用于交流学习,因文章内容而产生的任何违法&未授权行为,与文章作者无关!!! 附:完整笔记目录~ ps:本人小白,笔记均在个人理解基础上整理,…

基于w25q128的智能门禁

项目需求 1. 矩阵键盘输入密码,正确则开锁,错误则提示,三次错误蜂鸣器响3秒; 2. 按下#号确认输入,按下*号修改密码; 3. 密码保存在 W25Q128 里; 4. OLED 屏幕显示信息。

【计算机网络】期末考试预习复习|中

作业讲解 转发器、网桥、路由器和网关(4-6) 作为中间设备,转发器、网桥、路由器和网关有何区别? (1) 物理层使用的中间设备叫做转发器(repeater)。 (2) 数据链路层使用的中间设备叫做网桥或桥接器(bridge)。 (3) 网络层使用的中间设备叫做路…

开放词汇目标检测(Open-Vocabulary Object Detection, OVOD)综述

定义 开放词汇目标检测(Open-Vocabulary Object Detection, OVOD)是一种目标检测任务,旨在检测和识别那些未在训练集中明确标注的物体类别。传统的目标检测模型通常只能识别有限数量的预定义类别,而OVOD模型则具有识别“开放词汇…

单点登录平台Casdoor搭建与使用,集成gitlab同步创建删除账号

一,简介 一般来说,公司有很多系统使用,为了实现统一的用户名管理和登录所有系统(如 GitLab、Harbor 等),并在员工离职时只需删除一个主账号即可实现权限清除,可以采用 单点登录 (SSO) 和 集中式…

算法笔记—前缀和(动态规划)

【模板】前缀和_牛客题霸_牛客网 (nowcoder.com) #include <initializer_list> #include <iostream> #include <vector> using namespace std;int main() {//输入数据int n,q;cin>>n>>q;vector<int> arr;arr.resize(n1);for(int i1;i<…

力扣438-找到字符串中所有字母异位词

力扣438-找到字符串中所有字母异位词 力扣438-找到字符串中所有字母异位词原题地址&#xff1a;https://leetcode.cn/problems/find-all-anagrams-in-a-string/description/ 题目描述&#xff1a; 给定两个字符串 s 和 p&#xff0c;找到 s 中所有 p 的 异位词的子串&#x…

linux-----进程及基本操作

进程的基本概念 定义&#xff1a;在Linux系统中&#xff0c;进程是正在执行的一个程序实例&#xff0c;它是资源分配和调度的基本单位。每个进程都有自己独立的地址空间、数据段、代码段、栈以及一组系统资源&#xff08;如文件描述符、内存等&#xff09;。进程的组成部分&am…

胡九道:经典传承(贵宾酒)

胡九道的由来 在辽阔的科尔沁草原上&#xff0c;有一个美丽的女子&#xff0c;她才貌双全&#xff0c;知书达礼&#xff0c;她就是历史上著名的孝庄皇后。大玉儿不仅聪慧过人&#xff0c;而且深具母仪天下的气质&#xff0c;深受百姓和皇室的敬爱。当她跟随丈夫皇太极入关来到…