×
单片机 > 单片机程序设计 > 详情

STM32 jtag调试程序时程序跑飞

发布时间:2020-08-28 发布时间:
|

开发环境:keil MDK V5.10

操作系统:windows 7(32位)

目标硬件:STM32F103C8

问题描述:在使用jtag对某软件进行调试的时候,KEIL可以正常的进行软件下载,一旦使用F5全速运行时,立即发现程序跑飞了,暂停后汇编代码显示“MOVS R0 R0”。程序跑飞的时候可以看到目标设备程序执行过程正常(灯正常闪烁,串口调试信息正常输出)。


问题原因:芯片的JTAG引脚被复用,在程序初始化阶段将JTAG引脚remap为了普通的IO引脚导致。


PS:在使用JTAG进行程序调试的时候,如果程序中开了看门狗,调试程序进行了单步调试的情况也可能导致JTAG无法正常使用,因为目标设备的看门狗不能因为单步执行而暂停,从而导致在JTAG在线调试的单步执行或者暂停执行的情况下,目标设备由于看门狗不能暂停,已经导致硬件复位,从而脱离JTAG的调试模式,导致看起来程序跑飞。



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
STM32中断向量表的位置.重定向