括号中的值是ifsr
(指令故障状态)寄存器。中止的原因有很多,这些原因有特定的原因。内核中有一些表可以处理特定的故障原因,而另一些表则具有处理程序,该处理程序执行aprintk
并中止任务或panic()
执行内核。参见:arm / mm / fault.c。除非您正在开发故障处理程序,否则该值可能没有价值。尽管它可以使您了解故障的根源,但最好还是PC
在该地址查看代码(我认为它已经打印出来了?)。
这些故障可能发生在任何地方。在用户任务,内核任务或interrupt
处理程序等中。由于interrupt
处理程序崩溃,Linux决定停止所有操作,而无需进行任何操作。否则,您可能会损坏磁盘(甚至更多),等等。
注意:每个故障状态寄存器 都有一个 abort.S 文件,该文件对于特定的ARM cpu是不同的。例如,请参见abort- ev7.Sv7_early_abort
。将其放入在启动时匹配的处理器表中。