相信小伙伴们都会遇到这样的场景:芯片程序跑着跑着就异常了,这个时候又不能仿真,因为一旦仿真程序就会重新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函数。 是不是特别简单?
教程由GD32 MCU方案商聚沃科技原创发布,了解更多GD32 MCU教程,关注聚沃科技官网,GD32MCU技术交流群:859440462
|