烟台哪里做网站好,网站设计重要性,百度信息流,网页设计与制作模块1课后答案1、前提背景#xff1a;
在一些嵌入式机器的系统运行过程中#xff0c;时常会发生一些bus hang的问题#xff0c;直接导致的后果是系统卡住或者触发重启#xff0c;最终整体系统运行异常。
2、什么是bus hang#xff1a;
简单说#xff0c;就是系统的某个模块已经停止…1、前提背景
在一些嵌入式机器的系统运行过程中时常会发生一些bus hang的问题直接导致的后果是系统卡住或者触发重启最终整体系统运行异常。
2、什么是bus hang
简单说就是系统的某个模块已经停止关闭了工作关闭了power or clock但是此时其他模块或者代码还继续对此模块的寄存器进行操作读or写,由于无法对关闭的模块进行读写此时在这块进行耗时操作导致总线超时。
3、分析问题
针对于此类问题的分析首先需要对问题进行确认是不是发生了bus hang不管是拿到系统的trcace,db,log,或者有效的解析信息后需要确认涉及到上次cpu的 log中是否有异常的地址在被读取然后再针对于此地址进行详细分析。
eg:针对于如下cpu log:
read 0 , vaild 0x0tid 0x1 , read id 0x111, address 0x11111234,data 0x01, length 0x0
read 1 , vaild 0x0tid 0x0 , read id 0x0, address 0x0,data 0x0, length 0x0
read 2 , vaild 0x0tid 0x0 , read id 0x0, address 0x0,data 0x0, length 0x0
read 3 , vaild 0x0tid 0x0 , read id 0x0, address 0x0,data 0x0, length 0x0
write 0 , vaild 0x0tid 0x0 , read id 0x0, address 0x0,data 0x0, length 0x0
write 1 , vaild 0x0tid 0x2 , wrtie id 0x222, address 0x22221234,data 0x2, length 0x0
write 2 , vaild 0x0tid 0x0 , wrtie id 0x0, address 0x0,data 0x0, length 0x0
write 3 , vaild 0x0tid 0x0 , wrtie id 0x0, address 0x0,data 0x0, length 0x0
从上述就可以看到address 0x11111234address 0x22221234 这两个地址分别在进行读写寄存器的时候发生了bus hang .
4、解决问题
发生bus hang ,一般两种运行一个是代码出现问题栈被踩坏第二就是硬件不良。
代码问题需要通过对应的寄存器问题去通过机器的固件文件进行分析有些需要fdt文件有些需要so等库然后结合读写的地址进行代码分析。硬件不良需要确认是涉及那个module 以及分析是否还受其它硬件影响进行分析。