內核API之request_threaded_irq

1.原型

request_threaded_irq(unsigned int irq, irq_handler_t handler,                                                                            
             irq_handler_t thread_fn,
             unsigned long flags, const char *name, void *dev);

2.頭文件

linux/interrupt.h

3.功能

將中斷線程化,中斷將作爲內核線程運行,可被賦予不同的實時優先級。在負載較高時,中斷線程可以被掛起,以避免某些更高優先級的實時任務得不到及時響應

4.參數

參數 描述
irq 中斷號,所申請的中斷向量
handler 中斷處理函數,在驅動中一般這個參數是NULL,爲NULL時使用默認的處理,這個相當於中斷的上半段
thread_fn 中斷髮生時,如果handler爲NULL,就直接將thread_fn扔到內核線程中去執行
flags 指定中斷屬性、中斷觸發方式(一般用宏定義表示)等,定義在linux/interrupt.h中
name 指定中斷名字,用命令cat /proc/interrupts可查看系統中斷申請與使用情況
dev 傳入中斷處理程序的參數,可以爲NULL,但在註冊共享中斷時,此參數不能爲NULL。該參數可作爲共享中斷時的中斷區別參數,還可以把其傳給一個結構體變量,用於保存一個設備的信息,使中斷處理函數可以獲得該設備的信息

5.返回值

函數運行正常時返回0,否則返回對應錯誤的負值。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章