尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
RT-Thread Studio + J-Link 调试STM32F103RG:从环境搭建到实战排错
1. 环境准备搭建开发环境的正确姿势第一次接触RT-Thread Studio和J-Link调试STM32时我踩了不少坑。记得有次驱动死活装不上差点把J-Link摔了。后来才发现是Windows系统权限问题。下面这些经验都是我用坏两根J-Link换来的建议新手直接照做。硬件清单要核对三遍开发板STM32F103RG核心板我用的是创思通信的板子LED引脚布局可能不同调试器J-Link V9/V11V8也能用但速度慢20%USB转串口工具CH340模块PL2303容易驱动冲突杜邦线若干建议用彩色线区分功能软件安装避坑指南先去RT-Thread官网下载Studio时注意选带芯片支持的完整版约1.2GB安装J-Link驱动时务必右键以管理员身份运行血泪教训串口工具推荐用通信猫比SecureCRT更适配RT-Thread的日志格式提示安装路径不要有中文和空格我遇到过因路径含空格导致工程编译失败的情况驱动验证环节很多人会忽略# 设备管理器应该看到这两个设备 [J-Link driver] [USB-SERIAL CH340]如果J-Link显示黄色感叹号试试这个骚操作拔掉设备→卸载驱动→重启电脑→先插J-Link再装驱动。2. 工程创建从零构建可调试项目新建工程时有个隐藏坑点RT-Thread Studio的基于芯片和基于模板选项区别很大。我用STM32F103RG时必须选基于芯片才能正常调试。关键配置步骤芯片型号勾选STM32F103RG别选成ZE或RE调试接口选JTAGSWD也可以但需要改接线在RT-Thread Settings里开启以下组件Kernel → Debug → Enable UART1Drivers → Enable PIN driver勾选Use J-Link for debugging工程创建完成后先别急着写代码。我建议先编译空工程确保环境没问题。常见编译错误有找不到arm-none-eabi-gccPATH环境变量问题提示jlink_arm.dll丢失驱动没装好内存不足报错关掉360等杀毒软件3. 硬件连接看似简单却暗藏玄机接线错误是导致调试失败的高频原因。这是我的接线方案J-Link与STM32连接J-Link引脚 | STM32引脚 TMS | PA13 TCK | PA14 TDI | PA15 TDO | PB3 nTRST | PB4可选 Vref | 3.3V GND | GND串口模块连接CH340 TX → PA10USART1_RX CH340 RX → PA9 USART1_TX 共用GND遇到过最诡异的问题调试时芯片异常复位。后来发现是nTRST引脚没接上拉电阻。建议在PB4接个10K上拉电阻到3.3V。4. 调试配置让J-Link乖乖工作Studio的调试配置界面有多个隐藏选项在Debug Configurations里勾选Reset after connect设置Speed为4000kHz太高会不稳定添加初始化命令setmem 0xE000EDF0, 0xA05F0000修改jlink_arm.cfg文件# 添加这两行防止Flash下载失败 set WORKAREASIZE 0x4000 set FLASHSIZE 0x20000对于STM32F103RG的特殊设置// 在board.h添加宏定义 #define BSP_USING_JTAG #define __JTAG_PIN_ENABLE() __HAL_AFIO_REMAP_SWJ_ENABLE()实测发现V9版J-Link下载速度比V8快3倍但V11的RTT功能更稳定。如果遇到Could not read CPU status错误尝试降低时钟速度到500kHz。5. 实战排错常见问题解决方案问题1J-Link无法识别芯片症状IDE提示No device found on JTAG chain 解决方法检查Vref电压必须3.3V运行J-Link Commander输入usb查看连接状态尝试命令JTAGConf -1 -1 -1 -1 -1强制检测问题2下载后程序不运行典型表现调试能连上但复位后没反应 排查步骤确认Boot0和Boot1引脚状态都接地检查Options Bytes配置# 在J-Link Commander中输入 Write4 0x1FFFF800, 0xAA55CCDD测试GPIO输出是否正常先点个LED试试问题3断点不生效可能原因优化等级过高改为-O0代码被编译到RAM执行修改链接脚本断点数量超限STM32F103只有6个硬件断点我用过的终极调试技巧当所有方法都失效时在main()第一行添加__asm volatile (nop); // 用于强制暂停6. 进阶技巧提升调试效率RTT日志功能 在rtconfig.h中开启#define BSP_USING_JLINK_RTT #define ULOG_BACKEND_RTT然后用J-Link RTT Viewer查看日志比串口快10倍内存实时监控 在Debug视图添加Watchpoint*(uint32_t*)0x20000000 // 监控内存起始地址批量操作技巧 创建jlink_script.ini文件device STM32F103RG speed 4000 loadfile project.hex 0x08000000 verifybin project.bin 0x08000000 reset用命令JLink.exe -CommanderScript jlink_script.ini一键下载最近发现个骚操作用J-Link的J-Scope功能实时绘制变量曲线比打日志直观多了。配置方法在Studio中勾选Enable SWO设置CPU时钟为72MHz添加要监控的变量地址调试STM32F103RG时最费时间的是Flash擦除。后来我改用分段下载策略开发阶段只擦除必要扇区速度提升5倍。具体是在Debug配置的Startup页签取消勾选Erase entire chip。7. 性能优化让调试更流畅经过多次测试我总结出这些参数组合最稳定配置项推荐值备注JTAG时钟2000kHz超过2500kHz容易失败Flash下载算法STM32F10x_128K选错会导致校验失败复位类型Software reset比硬件复位更可靠断点类型Hardware breakpoint最多支持6个对于大型项目建议修改链接脚本MEMORY { RAM (xrw) : ORIGIN 0x20000000, LENGTH 20K FLASH (rx) : ORIGIN 0x8000000, LENGTH 128K }把调试信息放到RAM可以显著提升单步执行速度。最后分享个冷知识按住J-Link上的按钮再插USB会进入固件更新模式。有次我不小心触发这个模式还以为调试器坏了折腾半天才发现是这个问题。
RELATED

相关推荐

FPGA开发避坑指南——Vivado IP核源码修改后的版本管理与风险控制

FPGA开发避坑指南——Vivado IP核源码修改后的版本管理与风险控制

1. 为什么需要修改IP核源码?在FPGA开发中,Vivado提供的IP核就像是一个个现成的积木块,帮我们快速搭建系统。但实际项目中,经常会遇到这些"标准积木"不完全符合需求的情况。比如最近有个项目,我们需要对DDR控…

📅 2026/9/8 17:04:38
销售团队自运维仪表盘:低代码+Python驱动的实时业务操作系统

销售团队自运维仪表盘:低代码+Python驱动的实时业务操作系统

1. 项目概述:为什么一个销售团队需要“能自己改”的仪表盘,而不是等IT排期?我带过三支不同行业的销售团队,从SaaS初创到制造业大客户部门,每次复盘季度目标没达成,最后总绕不开一个问题:销售经理…

📅 2026/9/10 20:36:51
汽车级LDO TPS7B84-Q1设计实战:40V耐压、18µA静态电流与PCB布局要点

汽车级LDO TPS7B84-Q1设计实战:40V耐压、18µA静态电流与PCB布局要点

1. 项目概述与核心价值在汽车电子系统的设计里,给那些“永远在线”的模块供电,比如车身控制器(BCM)、网关或者远程钥匙接收模块,一直是个让人头疼的难题。这些模块即使在车辆熄火后也需要保持微弱的“呼吸”&#xff0…

📅 2026/9/11 2:23:22
MORE NEWS

更多资讯

📰

Skills for Codex 无障碍语音朗读(Accessibility Read)生成指南:默认参数、指令模板与 CLI 落地实践

Skills for Codex 无障碍语音朗读(Accessibility Read)生成指南:默认参数、指令模板与 CLI 落地实践 【免费下载链接】skills Skills Catalog for Codex 项目地址: https://gitcode.com/GitHub_Trending/skills4/skills 导读 本文围绕…

📰

Codex PDF Skill 实战指南:基于 Poppler 渲染校验与 reportlab/pdfplumber/pypdf 的 PDF 生成与审阅工作流

Codex PDF Skill 实战指南:基于 Poppler 渲染校验与 reportlab/pdfplumber/pypdf 的 PDF 生成与审阅工作流 【免费下载链接】skills Skills Catalog for Codex 项目地址: https://gitcode.com/GitHub_Trending/skills4/skills 本篇指南完整解析 GitHub 推荐项…

📰

Appium 1 迁移到 Appium 2 完整指南:破坏性变更、驱动/插件生态与配置迁移实战

Appium 1 迁移到 Appium 2 完整指南:破坏性变更、驱动/插件生态与配置迁移实战 【免费下载链接】appium Cross-platform automation framework for all kinds of apps, built on top of the W3C WebDriver protocol 项目地址: https://gitcode.com/GitHub_Trendin…

📰

时间序列数据增强实战:在Time-Series-Library跑通15种算法的对比

时间序列数据增强实战:在Time-Series-Library跑通15种算法的对比 【免费下载链接】Time-Series-Library A Library for Advanced Deep Time Series Models for General Time Series Analysis. 项目地址: https://gitcode.com/GitHub_Trending/ti/Time-Series-Libr…

📰

LeetCode-Go 题解:1656. Design an Ordered Stream(有序流)设计与 Go 实现详解

LeetCode-Go 题解:1656. Design an Ordered Stream(有序流)设计与 Go 实现详解 【免费下载链接】LeetCode-Go ✅ Solutions to LeetCode by Go, 100% test coverage, runtime beats 100% | LeetCode 题解 项目地址: https://gitcode.com/Gi…

📰

OpenLogi 架构决策日志深度解析:从单进程 Agent 到按设备身份键控的配置体系

OpenLogi 架构决策日志深度解析:从单进程 Agent 到按设备身份键控的配置体系 【免费下载链接】OpenLogi ⚡️A native, local-first alternative to Logitech Options, written in Rust 🦀 — remap buttons, DPI, and SmartShift over HID. No account,…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬