1. request_irq()函數原型
int request_irq(unsigned int irq, irq_handler_t handler,
unsigned long irqflags, const char *devname, void *dev_id)
2.
功能:注冊中斷服務函數
* @irq:要申請的硬件中斷號
* @handler: IRQ發生時要調用的函數
* @irqflags:中斷類型標志
* @devname:聲明設備的ascii名稱
* @dev_id:傳遞回處理器函數的cookie。中斷和卸載的時候用到
3. 使用示例:

4. 解析上面程序
1. 上面程序是按鍵中斷程序,中斷號對應引腳上面的中斷號,具體可以查芯片手冊上面有
2. 中斷函數是buttons_irq(),當出現按鍵按下或者松開時候調用buttons_irq()函數,並傳
入參數irq和dev_id
3. IRQT_BOTHEDGE是雙邊沿觸發方式,當有按鍵按下或者松開時候就觸發中斷
4. 名字是S2-S4,需要時ascii名稱
5. 當中斷發生或者卸載時候,需要用到dev_id的地址
5. 使用free_irq()函數來釋放已經注冊的中斷
函數原型:void free_irq(unsigned int irq, void *dev_id)
解析:需要用到中斷號irq和dev_id
使用示例:釋放上面注冊了的中斷

6. 觸發方式
1.
IRQT_NOEDGE
2.
IRQT_RISING//上升沿觸發
3.
IRQT_FALLING //下降沿觸發
4.
IRQT_BOTHEDGE//雙邊沿觸發
5.
IRQT_LOW//低電平觸發
6.
IRQT_HIGH//高電平觸發
7.
IRQT_PROBE
