vscode + Jlink 一键调试stm32 单片机程序(windows系统版)

vscode + Jlink 一键调试stm32 单片机程序

  • 安装交叉编译工具链
  • 安装 x-pack 构建工具
  • 安装 JLink 工具
  • gnu-debuger 插件
  • 编译
  • 一键启动调试

安装交叉编译工具链

stm32采用 交叉编译工具链 arm-none-eabi-xxx, 下载之后解压,压缩包内部结构如下图:在这里插入图片描述
目录下的bin 就是交叉编译工具链的可执行文件地址
在这里插入图片描述
将压缩包拷贝到C盘,并将该交叉编译工具链的路径添加到环境变量PATH中
在这里插入图片描述
在 powershell 中执行 arm-none-eabi-5.4.1-gcc.exe --version 有如下打印则表示安装正确
在这里插入图片描述

安装 x-pack 构建工具

xPack Windows Build Tools 是一个专为Windows环境设计的软件包,能用来在 windows 下构建交叉编译程序。安装该工具之后,设置环境变量,终端中可以使用make 工具构建代码。
在这里插入图片描述
在这里插入图片描述

安装 JLink 工具

Jlink 工具是一款广泛用于调试单片机程序的调试工具,官网下载安装好后,设置环境变量,在终端中可以运行程序。
在这里插入图片描述
在这里插入图片描述
JLink 有一系列工具,其中 JFlash 可以用于读写单片机中的falsh,用于下载执行程序,JLinkGDBServer.exe 和 JlinkDGBServerCL.exe 分别是图形界面的调试服务端程序命令行调试服务端程序。其中 JFlash 可以使用命令行下载程序,使用方法为:JFlash.exe -openprjC:\stm32f405zg.jflash -openD:\path\base_app_test.bin,8010000 -auto -startapp -exit -jflashlogdownload

gnu-debuger 插件

gnu-debuger 插件是一款轻量化单片机程序调试插件,其借助 arm-none-eabi-gdb.exeJlinkDGBServerCL.exe两个工具,实现单片机程序的一键下载调试。
在这里插入图片描述
一键安装好插件之后,在工作空间中新增一个launch.json 文件,在文件中添加如下的配置:

{// Use IntelliSense to learn about possible attributes.// Hover to view descriptions of existing attributes.// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{"type": "gnu-debugger","request": "launch","name": "GNU debugger","program": "${workspaceFolder}\\path\\run_test.elf","toolchain": "","client": "arm-none-eabi-gdb.exe","server": "JLinkGDBServer","windows": {"server": "JLinkGDBServerCL.exe",},"serverArgs": ["-if", "SWD","-device", "STM32F407IG","-endian", "little","-speed", "1000","-port", "2331","-vd","-ir","-localhostonly", "1","-singlerun","-strict","-timeout", "0"],"serverPort": 2331,"serverHost": "localhost","customVariables": ["port0","port1","port2",],"autoRun": false,"debugOutput": false}]
}

其中 type 指选用的调试器是 gnu-debugerprogram 带调试信息的执行文件;toolchain 是交叉编译工具链的执行文件路径,因为之前已经将交叉编译工具链的路径添加到 Path环境变量中了,所以这里填空;client 是指选用的gdb调试器是arm-none-eabi-gdb.exeserver表示选用的gdb server ,这里采用 JLinkGDBServerwindows 表示Windows系统中采用 JLinkGDBServerCL.exe 命行工具作为server程序;其他剩余参数都是 JLinkGDBServerCL.exe 的执行参数。

编译

使用 stm32 cube 生成的工程,在vscode 终端直接执行make,便可以根据makefile完成工程的编译。
在这里插入图片描述

一键启动调试

在这里插入图片描述
点击 左上角的 三角形,会下载程序到单片机中,点击执行会进入断点。
在这里插入图片描述
在终端的下方可以输入 gdb 的命令,比如 info breaks 可以查看所有的断点。delete 1 可以删除第一个断点。
在这里插入图片描述
在左上角输入 变量查看框内,可以切换变量值的显示形式,输入 0x 以16进制显示变量,输入 0b 以二进制显示变量,更多用法如下:

0b = binary
0o = octal
0d = decimal
0x = hexadecimal
0n = natural (back to GDB default output format)

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

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

相关文章

Linux线程概念和控制

Linux线程概念 Linux中线程如何理解 线程<执行流<进程 Linux中的线程模拟进程实现&#xff08;线程就是轻量级进程&#xff09; 与独立的进程相比&#xff0c;线程创建和销毁的开销较小&#xff0c;因为它们共享相同的内存空间和资源。 线程是进程内的执行分支&…

服务器出现问题,连接服务器出现3680 并删除数据库出现1192,请查看详细问题(运维)

mysql连接服务器时&#xff0c;出现这个问题&#xff1a;3680 - Failed to create schema directory xxxx (errno: 28 - No space left on device) 第一步&#xff1a;诊断问题类型 检查磁盘空间 运行以下命令&#xff1a; bash df -h # 查看磁盘使用情况 如果输出中 Use% 接…

uniapp:微信小程序胶囊「复制链接」灰色处理

在原生开发的小程序中默认是支持复制的 &#x1f424; 但是在 uniapp 开发的小程序中无法复制&#xff08;体验版与开发版都可以进行复制&#xff0c;但发布后不可&#xff09; 解决方法&#xff1a; methods: {onShareAppMessage: function() {// return custom share data …

差分数组c++

温度波动记录 每天记录温度&#xff0c;支持区间温度调整和单日查询 输入&#xff1a; 第一行&#xff1a;一个整数n表示有n个温度 第二行&#xff1a;n个数表示具体温度 第三行&#xff1a;三个整数&#xff1a;S&#xff0c;e&#xff0c;c&#xff0c;表示从…

Vue.js 列表过滤实现详解(watch和computed实现)

Vue.js 列表过滤实现详解 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthd…

性能测试-jmeter实战4

课程&#xff1a;B站大学 记录软件测试-性能测试学习历程、掌握前端性能测试、后端性能测试、服务端性能测试的你才是一个专业的软件测试工程师 性能测试-jmeter实战4 jmeter环境搭建1. 安装Java环境&#xff08;必需&#xff09; JMeter环境搭建完整指南1. 安装Java&#xff0…

GPPT(Graph Pre-training and Prompt Tuning)项目复现

GPPT(Graph Pre-training and Prompt Tuning)项目复现 项目概述 GPPT是一种创新的图神经网络预训练与提示调整框架,由MingChen-Sun等人提出。该项目通过将自然语言处理中的提示学习概念引入图领域,解决了图预训练模型在下游任务中的适应性问题。 环境配置 # 创建Python…

anchor 智能合约 IDL 调用

简介&#xff1a;通过 IDL 生成代码 调用 anchor 智能合约。 全网首发 使用 anchor 可以快速开发 solana 上面的智能合约 &#xff0c; 在本案例中我们 先使用 anchor 创建一个只能合约&#xff08; 多个函数方法&#xff09;。 部署到 dev 链上。 通过 anchor 的 IDL 生成 代码…

【Clickhouse系列】事务

目录 1. 标准 ACID 支持场景 (MergeTree 引擎家族) 2. 非 ACID 场景 3. 实验性事务功能 (非云环境) 总结 参考文档 事务性 (ACID) 支持 | ClickHouse Docs ClickHouse ACID 支持核心要点 1. 标准 ACID 支持场景 (MergeTree 引擎家族) • 单分区插入 (原子块) • ✅ 原子性…

在cursor中,配置jdk和maven环境,安装拓展插件

目录 1.手动配置jdk和maven 2.安装java拓展插件 1.手动配置jdk和maven 第一步&#xff1a;按ctrl shift p, 搜索“Preferences: Open User Settings (JSON)” 并回车&#xff0c;打开 settings.json 文件 。然后添加或修改以下内容&#xff1a; "java.home": &qu…

(线性代数最小二乘问题)Normal Equation(正规方程)

Normal Equation&#xff08;正规方程&#xff09; 是线性代数中的一个重要概念&#xff0c;主要用于解决最小二乘问题&#xff08;Least Squares Problem&#xff09;。它通过直接求解一个线性方程组&#xff0c;找到线性回归模型的最优参数&#xff08;如权重或系数&#xff…

在架构设计中平衡动态语言与静态语言部署差异的策略分析

在软件架构设计过程中&#xff0c;语言的选型不仅仅关乎开发效率&#xff0c;更直接影响系统的部署速度、运行性能与维护成本。动态语言&#xff08;如 Python、Node.js&#xff09;部署快、开发灵活&#xff1b;静态语言&#xff08;如 Go、Java、Rust&#xff09;性能强、类型…

我的VSCode中那些插件

前言 最近在研究VUE.JS&#xff0c;而VUE官方推荐使用VSCode作为开发工具&#xff0c;因此最近才开始大量使用这个工具。在使用过程中&#xff0c;总会遇到一些视频博主推荐某某插件&#xff0c;于是我都将其安装在我的VSCode上。这里记录一下&#xff0c;仅供参考。 插件列表…

C# 时间格式日期格式使用合集

一、常用整理 C#时间使用整理,DateTime 使用整理_c#时间格式-CSDN博客 C# 本地时间格式&#xff0c;UTC时间格式&#xff0c;GMT时间格式处理 二、 C#如何获取今天零点的时间 C# 获取周一、周日 三、 C#计算两个时间年份月份差 C#时间点字符串转换为日期&#xff0c;当…

Ribbon负载均衡的具体实现原理

Ribbon 是 Netflix 开源的一款客户端负载均衡工具&#xff0c;广泛应用于微服务架构中&#xff0c;用于在客户端选择目标服务实例。 以下是 Ribbon 负载均衡的具体实现原理&#xff1a; 1. 什么是 Ribbon Ribbon 是一个客户端负载均衡器&#xff0c;负责从服务注册中心&#…

iOS APP上架App Store实践:通过自动化流程和辅助工具高效提

在现代开发流程中&#xff0c;持续集成&#xff08;CI&#xff09;已经成为必不可少的环节。对于iOS应用的开发与发布&#xff0c;持续集成不仅限于构建过程&#xff0c;还应该涵盖从代码提交到版本发布的整个生命周期。然而&#xff0c;由于iOS平台对开发环境的限制&#xff0…

3443. K 次修改后的最大曼哈顿距离

3443. K 次修改后的最大曼哈顿距离 题目链接&#xff1a;3443. K 次修改后的最大曼哈顿距离 代码如下&#xff1a; class Solution { public:int maxDistance(string s, int k) {int res 0;// 定义一个大小为 X&#xff08;88&#xff09;的数组&#xff0c;并初始化为 0int…

【Ubuntu】Windows11安装虚拟机超详细图文教程(VMware17.6.1 + ubuntu-24.04.2)

目录 前言 一、准备工作 1、工具安装包 2、获取方式 3、本人的电脑安装环境介绍 二、虚拟机磁盘分区&#xff08;可选&#xff09; 1、分区助手安装 2、为虚拟机准备一个单独的磁盘分区 三、VMware安装 四、ubuntu镜像安装 1、Ubuntu镜像iso文件加载引导 2、Ubuntu…

计算机视觉(Computer Vision, CV)

目录 一、核心任务 二、常见应用场景 三、主流技术框架与工具 四、热门算法简述 五、发展趋势 六、计算机视觉学习路线图&#xff08;从入门到实战&#xff09; 1.阶段总览 2.学习路径详解 阶段一&#xff1a;CV入门基础 学习目标&#xff1a; 推荐内容&#xff1a;…

使用Dagster资产工厂模式高效管理重复ETL任务

本文介绍了如何利用Dagster的资产工厂模式来高效管理和自动化重复的ETL&#xff08;提取、转换、加载&#xff09;任务。通过Python函数和YAML配置文件的结合&#xff0c;我们可以轻松地创建和管理大量相似的资产&#xff0c;同时提高代码的可维护性和可配置性。文章还探讨了如…