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

描述

相信小伙伴们都会遇到这样的场景:芯片程序跑着跑着就异常了,这个时候又不能仿真,因为一旦仿真程序就会重新download,异常现象就消失了。现在就来教大家如何使用Jlink仿真器去查看GD32芯片跑飞后程序死在哪里。

首先,我们需要将目标板和Jlink进行连接,只需要接三根线:SWDIO(PA13)、SWCLK(PA14)和GND,切记,一定不能接NRST脚,否则连接的时候就可能把芯片复位了,当然,也一定要保证连接过程中芯片不要断电。

然后在Jlink驱动安装目录中找到Jlink.exe,双击打开:

Jlink

 

打开后是这个界面:

Jlink

 

键盘输入:usb,点击回车:

Jlink

 

提示连接到Jlink,然后输入:s,并回车

Jlink

 

这里会有一个默认芯片型号,如果和目标板上的型号不一致可以输入:?,并回车,如果一致则直接回车。

因为小编用的是GD32F303ZGT6,所以输入了“?”,将会弹出选择芯片的列表,找到目标芯片并双击:

Jlink

 

回到Jlink.exe界面:

Jlink

 

因为我们是用SWD接口,所以输入:s,并回车:

Jlink

 

这里会让你选择Jlink的通信速度,默认是4000KHz,如果你的目标板和Jlink之间的线比较长的话,可以适当降低速度,比如需要1000KHz,则键盘输入:1000,并回车,将会出现下面这个界面:

Jlink

 

我们看到红色框线内已经提示找到芯片ID了,这时候在输入:h,并回车,将看到以下界面:

Jlink

 

红色方框内的PC值就代表了程序当前执行的位置,我们可以通过查看程序工程中的map文件,就可以找到程序正在运行哪个函数了,如小编这里的PC值是0x08000AAA,map文件中符合这个地址的是delay_1ms函数。

Jlink

 

是不是特别简单?

以后小编还会教大家如何通过Jlink.exe来进行芯片的调试,敬请期待哦。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
评论(0)
发评论
xuzhien 01-26
0 回复 举报
感觉很好用,改天试试 收起回复

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分