首先并不是运行OS挂死,所以CPU运行的最小系统没有任何问题;
加载部分应用业务才挂死,这种情况下,主要是2种情况:
1、加载的业务部分导致总线挂死;
---可能访问了没有时钟的模块,
或者没有释放复位的模块,
或者发出来不符合总线协议的访问;
发出来越出地址空间边界的访问
这个需要逐一排查,如果总线挂死,CS可能也帮不上。只有A53执行程序部分越界,如内存溢出,能通过CS跟踪到。
2、加载应用业务后,程序运行内存溢出
A53本身还是有一部分debug寄存器与PMU寄存器,可以看看哪些有帮助,没有CS情况下,
是可以看看挂着仿真器一直跟踪程序run,直到挂死一刻,看看执行到什么程序。
3、逐一添加运行模块的方法来排除也是一个方法;
4、打开所有的总线错误中断,看看在崩溃前CPU是否收到中断。在中断服务子程序入口打印中断上报信息。