笔者最近在用NXP的MCU,经常会碰到CPU could not be halted,今天就来聊一下原因和如何解决
1、背景情况说明
如下图所示,笔者在遇到Ozone链接的时候,CPU could not be halted的情况,原因就是访问了非法地址,或者在SDRAM没初始化的时候,就访问了其地址。
- 导致的后果就是,程序一上电就跑到异常地方跑飞,总线挂死,所以Jink通过Jtag协议也无法访问到CPU,然后就无法下载代码。
- 如果程序总线挂死,那么也不会走异常处理,无法抓到现场,也比较难debug
- 如果程序上电可以正常跑,没跑到异常,那么是可以正常链接Jink的
- 如果芯片总线挂死,需要重启芯片测试。
2、解决方案
原因就是芯片访问异常地址,然后没有地址保护,CPU一直等待总线返回,导致其他外设无法使用总线,则就无法连接jink,CPU也显示一直在忙,无法停下来
评论记录:
回复评论: