首先说明,答案是否定的,内核中断号可以与硬件中断号不一致,但是这是个无聊的问题。。实用价值不大。但是却可以引起对内核软件中断号与硬件中断号关系的思考。
两者的关系我觉得可以从中断的初始化和分发过程来一探究竟。
这里就从ARM PPC MIPS 3款主流嵌入式处理器架构的内核代码框架中来分析下他们中断的初始化和分发过程。
一 中断的初始化
对于中断初始化,在系统启动过程中,这3款处理器架构的内核软件框架中都会有相应的中断初始化函数.
内核启动函数start_kernel中会调用init_IRQ来进行中断初始化,该函数在不同处理器平台代码有不同实现。实现在arch/xxx/kernel/irq.c中。
对于arm处理器,init_IRQ调用对应设备描述符machine_desc的init_irq。
对于ppc处理器,init_IRQ调用对应设备描述符machdep_calls的init_IRQ。
对于mips处理器,init_IRQ调用arch_init_irq。
最终调用的中断初始化函数是在板级支持包中实现,因为中
两者的关系我觉得可以从中断的初始化和分发过程来一探究竟。
这里就从ARM PPC MIPS 3款主流嵌入式处理器架构的内核代码框架中来分析下他们中断的初始化和分发过程。
一 中断的初始化
对于中断初始化,在系统启动过程中,这3款处理器架构的内核软件框架中都会有相应的中断初始化函数.
内核启动函数start_kernel中会调用init_IRQ来进行中断初始化,该函数在不同处理器平台代码有不同实现。实现在arch/xxx/kernel/irq.c中。
对于arm处理器,init_IRQ调用对应设备描述符machine_desc的init_irq。
对于ppc处理器,init_IRQ调用对应设备描述符machdep_calls的init_IRQ。
对于mips处理器,init_IRQ调用arch_init_irq。
最终调用的中断初始化函数是在板级支持包中实现,因为中