0x9*_*x90 10 linux arm module linux-kernel
我insmod是ARM平台上的一个内核模块,我得到一个内核恐慌,导致这三个错误被打印到屏幕上
Unhandled fault: external abort on non-linefetch (0x008) Unhandled fault: imprecise external abort (0xc06) Kernel panic - not syncing: Fatal exception in interrupt
3意思这听起来像是原子调度,但在内核模块中没有这样的东西.art*_*ise 12
括号中的值是ifsr(指令故障状态)寄存器.中止的原因很多,这些都是一个特定的原因.内核中有一些表处理特定的故障原因,而另一些表有一个处理程序可以执行printk和中止任务或panic()内核.见:arm/mm/fault.c.除非您正在开发故障处理程序,否则该值可能没有价值.虽然它可以让我们知道故障是什么,但最好只是PC查看该地址的代码(我认为已经打印过了?).
这些故障可能发生在任 在用户任务,内核任务或interrupt处理程序等中.由于您的interrupt处理程序已崩溃,Linux决定停止所有操作而不是继续进行操作.否则,你可能会破坏磁盘(甚至更多)等.
注意:每个故障状态寄存器都有一个abort.S文件,该文件对于特定的ARM CPU是不同的.例如,参见abort-ev7.S v7_early_abort.将其放入处理器表中,该表在引导时匹配.