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