STMCU小助手
发布时间:2021-8-6 11:01
|
01 WHY # B' Z) g! n' o- h# E+ V/ a 为什么要使用到J-LinkCommander呢???大部分情况下,我们使用J-link都是在IDE中debug使用的,出现问题,直接debug复现然后解决。这是最常见的开发方式。 5 i& C. F6 D" Z- i3 j. n 5 w1 e6 m' N, \ 但是有些情况我们不能使用IDE直接debug,比如发布版本(JTAG或SWD接口可以正常使用),大批量生产时发现几片异常的板子,重新debug问题就消失了。- n, r+ z7 \2 i* m2 M1 f / Y. f% c9 p% h# h+ ? 这个时候使用IDE直接debug已经不能解决问题,我们需要使用J-LinkCommander读取关键寄存器的值来协助我们定位排查问题。 ) T8 X# s0 l, v# Y0 Y5 {$ @; H: l) N 02 Jlinkcmd使用- d9 ?0 T0 l5 Y: l$ t 8 b3 P3 B+ Z6 ?* I. m Jlinkcmd它可以方便用户在非仿真的情况下,hold内核、单步、全速、设置断点、查看内核和外设寄存器、读取flash代码等等,方便大家拥有最高的权限查看在运行中的MCU情况,查找非IDE仿真情况下,MCU运行异常的原因。! P0 w/ `# I4 O! s1 {3 W 打开Jlinkcmd,如果单独安装了jlink驱动,我们可以在开始菜单找到Jlinkcmd。0 g8 C( r2 }2 J9 j) `
( R% M" }; Z9 ]+ ?3 X 或者在安装目录中找到它4 `2 X6 J& u$ c8 U+ f
3 `: p/ k/ Y$ S! N! e( ? 5 O( U- |- X A& G7 L) \- a4 Q+ }0 V 如果你们有独立安装Jlink驱动,同样也可以在Keil的安装目录中找到它4 d: [( Z1 a- i4 ?
首先使用Jlink连接好MCU,打开软件“Jlink.exe% q7 ]3 ]- W3 M: x6 _; V: U5 l. ]
按照提示输入相应信息connect->?->s->回车(旧版只需要输入usb即可连接目标芯片)# N- u' V+ H/ N3 o5 |, @( q( R
% `4 I% k' A) a . H/ [0 i3 x% p1 T g/ S+ J9 Y7 h8 O 正确的链接目标芯片后:& M3 c) M8 e8 `, S) ~. c" Y
: A1 N d$ P4 D b; s # f* h8 O9 n' z 如上图所示,选项字节里为"5AA5"即为无保护状态。) A2 T- a& l- n/ g* M Jlinkcommand常用命令简介:5 Z6 L8 H1 L9 I5 D! J/ V
03 实测 6 H- V% |; _' _! o( Y" k ' O! i8 Y, T- L0 j# [7 a 接下来就是实测环节,我们通过一个真实的例子演示一下Jlinkcmd的使用。在之前文章《STM32延时函数的四种方法》中有以下代码" C2 J7 ?% m, T" Q5 Y) u
从上图得知,SysTick->LOAD寄存器的地址是0XE000E014,写入寄存器的值是0X007270E0。6 R5 U# E8 m6 s 按照上述方案读取寄存器的值,步骤如下:
- r8 S7 D* S) [: h) t: ], r3 E 可以看到地址0XE000E014的SysTick->LOAD寄存器的值为0X7270E0。 ! w0 M8 e1 {- \& Y: {6 J" U) r- t 04 后记3 K( F# C( Q2 F" k 6 i q6 d) h0 m & ^& Z+ e8 y4 e: b 这里只是提供了一个简单的演示,可以非IDE仿真情况下,读取寄存器,协助排查MCU运行异常的原因,毕竟如果直接debug就能查到问题,熟悉32系列单片机的毕业生都可以做到。, I6 Z: W! f) ~; _( x7 j , b; O! b+ @) L! X* K5 } 我们需要在工作中积累这样类似的经验,巧妙使用工具处理一些“诡异”的问题,积累开发经验。- N; P6 o2 u: k: {, L 8 m# t5 m5 X! i6 o6 f 0 Z- j5 U& x+ D# y( u( R. \ 毕竟,填坑力就是核心竞争力。: m z$ d+ U' y. h |
实战经验 | 如何将全部代码放在SRAM中运行
STM32C542RC开发板实现长短按键识别功能
【新品测评】STM32WL3R芯片测评,从点亮第一个LED到subGhz启动
[GPIO] 使用新型抽象开始C++嵌入式编程,从GPIO开始
STM32L562DK探索板——继续深入了解Audio Play的工作流程
STM32L562DK探索板——触摸菜单实验之触摸测试
STM32L562DK探索板——触摸菜单实验之LED闪烁
STM32L562DK探索板——给Audio Play添加音量控制功能
STM32L562DK探索板——重写Led闪烁demo
STM32L562DK探索板——触摸菜单的实验
微信公众号
手机版