一、常用到的几个概念
1、IRQ(Interrupt ReQuest)物理中断请求
IRQ是外部设备通过CPU的中断引脚向CPU发送中断信号。
2、SYSINTR逻辑中断
当中断发生时,OAL需把物理中断信号映射成OEM定义的逻辑中断号,然后供系统和驱动程序调用。逻辑中断是对硬件中断很好的抽象。举例来说,不同开发板上的按键产生的IRQ可以不同,但当按键产生中断时,其IRQ可以被统一映射成SYSINTER_KEYBOARD,这样驱动程序就有了更强的兼容性。
3、ISR(Interrupt Service Routine)中断服务例程
ISR是运行在内核中的一段代码,通常由OEM实现。ISR负责把IRQ转化为逻辑中断并返回给内核,内核负责处理寄存器的保存于恢复。
4、IST(Interrupt Service Thread)中断服务线程
IST是运行在设备驱动上的一段程序,IST真正实现用户需要的中断的响应。
二、注册、实现一个中断处理程序的简要流程
流程如下图所示