或在调试低功耗模式的程序时,往往碰到重新下载程序失
败、调试器不能停止CPU运行等问题。
例如:定时器,DMA模块,ADC的连续转换模式等
这个问题的根源是:
调试器需要在RAM执行一段程序,对Flash进行擦写操作,如果不
停止这些自动运行的模块,它们会干扰程序在RAM中的执行,致
使下载失败。
低功耗是通过停止CPU的时钟而实现,JTAG调试是通过与CPU的
通信实现,停止了CPU的时钟致使调试器会失去与CPU的通信。
解决办法:
1. 退出调试状态时或main()开始时执行DeInit(),或
2. 下载程序或进入调试前,手工做硬件复位,或
3. 进入main()后,推迟启动自动运行的模块,或
4. 进入main()后,通过外设复位寄存器执行外设
复位并推迟启动相应外设 感谢大家的回复。我查找资料,感觉可能跟这个有些关系,不过我写了TIM的DeInit,并没有什么卵用。然而找不到有USB的DeInit。问题还是没解决,郁闷。
页:
1
[2]