当前位置: 首页 > ops >正文

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.xdnf.cn/news/14599.html

相关文章:

  • ArkTS与仓颉开发语言:鸿蒙编程的双子星
  • 软件工程:从理论到实践,构建可靠软件的艺术与科学
  • 【4目方案】基于海思3403平台开发4目360°全景拼接相机方案
  • 五种 IO 模式的简单介绍 -- 阻塞 IO,非阻塞 IO,信号驱动 IO,IO 多路复用,异步 IO
  • RISC-V三级流水线项目:总体概述和取指模块
  • 基于java SSM的房屋租赁系统设计和实现
  • python基于微信小程序的广西文化传承系统
  • 【入门级-基础知识与编程环境:3、计算机网络与Internet的基本概念】
  • VLN论文复现——VLFM(ICRA最佳论文)
  • AI-Sphere-Butler之如何将豆包桌面版对接到AI全能管家~新玩法(一)
  • 虚拟 DOM 与 Diff 算法:现代前端框架的核心机制
  • 边缘-云协同智能视觉系统:实时计算与云端智能的融合架构
  • PillarNet: Real-Time and High-PerformancePillar-based 3D Object Detection
  • MySQL 8.x配置MGR高可用+ProxySQL读写分离(二):ProxySQL配置MySQL代理及读写分离
  • HarmonyOS 5 多端适配原理与BreakpointSystem工具类解析:附代码
  • Flutter ListTile 徽章宽度自适应的真正原因与最佳实践
  • 十四天机器学习入门——决策树与随机森林:从零构建智慧决策模型
  • Python Django全功能框架开发秘籍
  • Jenkins部署及反向代理
  • 【JS-4.7-表单value属性】深入理解DOM操作中的表单value属性
  • 雷达高度计 RA-6500
  • AI浪潮拐点:MCP与A2A协议如何重塑AI智能体协作生态
  • 金融行业B端系统布局实战:风险管控与数据可视化的定制方案
  • 动手用 Web 实现一个 2048 游戏
  • 如何预防电磁铁损坏
  • Data Vault 初探(九) —— 定期装载_Kettle_附属表
  • Java性能优化权威指南-操作系统性能监控
  • HarmonyOS NEXT应用元服务布局优化ArkUI框架执行流程
  • 从java角度理解io多路复用和redis为什么使用io多路复用
  • PixPin:一个强大且免费的截图贴图工具