STMCU小助手
发布时间:2021-8-6 11:01
|
01 WHY 为什么要使用到J-LinkCommander呢???大部分情况下,我们使用J-link都是在IDE中debug使用的,出现问题,直接debug复现然后解决。这是最常见的开发方式。 但是有些情况我们不能使用IDE直接debug,比如发布版本(JTAG或SWD接口可以正常使用),大批量生产时发现几片异常的板子,重新debug问题就消失了。 这个时候使用IDE直接debug已经不能解决问题,我们需要使用J-LinkCommander读取关键寄存器的值来协助我们定位排查问题。 02 Jlinkcmd使用 Jlinkcmd它可以方便用户在非仿真的情况下,hold内核、单步、全速、设置断点、查看内核和外设寄存器、读取flash代码等等,方便大家拥有最高的权限查看在运行中的MCU情况,查找非IDE仿真情况下,MCU运行异常的原因。 打开Jlinkcmd,如果单独安装了jlink驱动,我们可以在开始菜单找到Jlinkcmd。
或者在安装目录中找到它
如果你们有独立安装Jlink驱动,同样也可以在Keil的安装目录中找到它
首先使用Jlink连接好MCU,打开软件“Jlink.exe
按照提示输入相应信息connect->?->s->回车(旧版只需要输入usb即可连接目标芯片)
正确的链接目标芯片后:
如上图所示,选项字节里为"5AA5"即为无保护状态。 Jlinkcommand常用命令简介:
03 实测 接下来就是实测环节,我们通过一个真实的例子演示一下Jlinkcmd的使用。在之前文章《STM32延时函数的四种方法》中有以下代码
从上图得知,SysTick->LOAD寄存器的地址是0XE000E014,写入寄存器的值是0X007270E0。 按照上述方案读取寄存器的值,步骤如下:
可以看到地址0XE000E014的SysTick->LOAD寄存器的值为0X7270E0。 04 后记 这里只是提供了一个简单的演示,可以非IDE仿真情况下,读取寄存器,协助排查MCU运行异常的原因,毕竟如果直接debug就能查到问题,熟悉32系列单片机的毕业生都可以做到。 我们需要在工作中积累这样类似的经验,巧妙使用工具处理一些“诡异”的问题,积累开发经验。 毕竟,填坑力就是核心竞争力。 |
巧用 Linker 自定义变量,破解 STM32 Flash 全片自检 ROM 大小配置难题
实战经验 | LAT1578 SAU对NSC分区的影响
【板卡测评】STEVAL-STWINKT1B 上电后任意工具读出 ACC/GYRO/MAG 实时数据并截图
F429I-DISC1体验报告(1)久经沙场,锋芒依旧丨TouchGFX开发F429丨国庆开发板测评活动
实战经验 | KEIL环境下printf导致程序无法执行的解决方案
经验分享 | 程序换个IDE就不运行了?
经验分享 | 常被误解的开、关总中断话题
【STM32U3评测】SPIDMA发送
【STM32U3评测】实现双通道串口通信系统
实战经验 | RT-Thread环境下Flash错误标志问题解析
微信公众号
手机版