linux中斷程序
發布時間: 2024-07-20 21:17:54
① linux中,中斷注冊和中斷服務程序只能寫在驅動層還是能寫在應用層
我也不完全理解,但是比你知道的多點。
Linux中,分內核態和用戶態。
你寫的所有的驅動,都是出於內核態->可以直接使用內核相關資源;
應用層,都是用戶態->無法直接操作底層的東西 -> 想要操作,比如獲得許可權,切換到內核態,然後才能操作。
你這里的需求,我的理解是:
對應你這句
「在中斷服務程序中操作另一個外設」
不知道你的目的和打算用的手段是啥
一般的,ISR中,操作別的設備,常見的是:
設置對應的(比如該硬體本身,或者別的設備B的)寄存器的對應的位,以便通知其某種事情發送或狀態變化了。
然後設備B會:
要麼是由於(被修改了寄存器而)發生了中斷,然後可以接著處理其所要做的事情;
要麼是一直輪訓,檢測對應的某種資源釋放變化,比如上面被改的寄存器的對應的位,發現變化了,再去調用你的函數,做對應的處理。
注意:
中斷,不論是哪個設備的中斷,都不應該佔用(CPU)太長時間
-> 導致別的中斷或服務無法及時運行
僅供參考。
熱點內容