Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 这些内核死机错误意味着什么?_Linux_Module_Linux Kernel_Arm - Fatal编程技术网

Linux 这些内核死机错误意味着什么?

Linux 这些内核死机错误意味着什么?,linux,module,linux-kernel,arm,Linux,Module,Linux Kernel,Arm,IinsmodARM平台上的一个内核模块,我得到一个内核死机,导致这三个错误被打印到屏幕上 未处理的故障:非linefetch(0x008)上的外部中止 未处理的故障:不精确的外部中止(0xc06) 内核死机-不同步:中断中出现致命异常 括号中的值是什么 3是什么意思听起来像是原子调度,但实际上是原子调度 在内核模块中没有这样的东西 括号中的值是ifsr()寄存器。中止的原因有很多,这些都给出了具体的原因。内核中有一些表处理特定的故障原因,另一些表有一个处理程序,它执行printk并中止任务

I
insmod
ARM平台上的一个内核模块,我得到一个内核死机,导致这三个错误被打印到屏幕上

  • 未处理的故障:非linefetch(0x008)上的外部中止
  • 未处理的故障:不精确的外部中止(0xc06)
  • 内核死机-不同步:中断中出现致命异常

    • 括号中的值是什么
    • 3
      是什么意思听起来像是原子调度,但实际上是原子调度 在内核模块中没有这样的东西

  • 括号中的值是
    ifsr
    ()寄存器。中止的原因有很多,这些都给出了具体的原因。内核中有一些表处理特定的故障原因,另一些表有一个处理程序,它执行
    printk
    并中止任务,或者可以
    panic()
    内核。请参阅:。除非您正在开发错误处理程序,否则该值可能没有价值。虽然它可以给出故障的原因,但最好是拿到
    PC
    并查看该地址的代码(我认为已经打印了?)

    这些故障可能发生在任何地方;在用户任务、内核任务或
    中断
    处理程序等中。由于您的
    中断
    处理程序已崩溃,Linux决定停止所有操作,不再继续。否则,可能会损坏磁盘(甚至更多),等等

    注意:每个都有一个abort.S文件,这对于特定的ARM CPU是不同的。例如,请参见
    v7\u early\u abort
    。这被放入一个在引导时匹配的文件中

  • 未处理的故障-尝试读取未映射的内存(通过MMU)
  • 内核死机-在被认为不可恢复的代码中发生未处理的错误

  • 很抱歉,这些表最近被移动到单独的
    C
    文件中。有关将
    ifsr
    映射到函数类型的表,请参见:和。至少在2.6.36中,这些表位于
    fault.c
    中。我认为,与未映射的页面相比,一些FSR代码可能指示
    硬件
    错误;这取决于CPU(即ARMV5、ARMV8等)。您可能已经正确设置了设备映射。一种常见情况是,外围设备的时钟未启用,并且设备不响应总线请求;特别是外部中止类型的消息,可能是由于缺少
    clk\u prepare\u enable()