打印

如何通过Jlink查看GD32芯片跑飞后程序死在哪里?

[复制链接]
819|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
相信小伙伴们都会遇到这样的场景:芯片程序跑着跑着就异常了,这个时候又不能仿真,因为一旦仿真程序就会重新download,异常现象就消失了。现在就来教大家如何使用Jlink仿真器去查看GD32芯片跑飞后程序死在哪里。
首先,我们需要将目标板和Jlink进行连接,只需要接三根线:SWDIOPA13)、SWCLKPA14)和GND,切记,一定不能接NRST脚,否则连接的时候就可能把芯片复位了,当然,也一定要保证连接过程中芯片不要断电。
然后在Jlink驱动安装目录中找到Jlink.exe,双击打开:
打开后是这个界面:
键盘输入:usb,点击回车:
提示连接到Jlink,然后输入:s,并回车
这里会有一个默认芯片型号,如果和目标板上的型号不一致可以输入:?,并回车,如果一致则直接回车。
因为小编用的是GD32F303ZGT6,所以输入了,将会弹出选择芯片的列表,找到目标芯片并双击:
回到Jlink.exe界面:
因为我们是用SWD接口,所以输入:s,并回车:
这里会让你选择Jlink的通信速度,默认是4000KHz,如果你的目标板和Jlink之间的线比较长的话,可以适当降低速度,比如需要1000KHz,则键盘输入:1000,并回车,将会出现下面这个界面:
我们看到红色框线内已经提示找到芯片ID了,这时候在输入:h,并回车,将看到以下界面:
红色方框内的PC值就代表了程序当前执行的位置,我们可以通过查看程序工程中的map文件,就可以找到程序正在运行哪个函数了,如小编这里的PC值是0x08000AAAmap文件中符合这个地址的是delay_1ms函数。
是不是特别简单?

教程由GD32 MCU方案商聚沃科技原创发布,了解更多GD32 MCU教程,关注聚沃科技官网,GD32MCU技术交流群:859440462

使用特权

评论回复
沙发
weifeng90| | 2024-7-11 08:28 | 只看该作者
可以在代码中加一些定位代码

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

168

主题

188

帖子

5

粉丝