天天看點

驅動程式之_1_字元裝置_14_小結

驅動程式之_1_字元裝置_14_小結

每當應用程式調用open、read、write等接口函數,會進入核心層,調用sys相關的函數,最終調用到驅動程式實作的open、read、write

以按鍵驅動為例

讀取資料方式有如下幾種:

1、查詢:read函數中不斷讀取資料并傳回。這種方法CPU的占用率高

2、休眠喚醒:在read函數中休眠,當按下按鍵,觸發中斷,在中斷服務程式中喚醒。這種方法在沒有喚醒事件時,會一直休眠,程序無法做其他事情

3、poll機制:與休眠喚醒方式不同的是,如果沒有喚醒事件,定期喚醒程序。這種方法在沒有事件發生時,程序按一定周期可以做其他的事情

4、fasync機制:異步通知機制,當有事件發生,驅動程式通知應用程式讀取資料。這種方法在沒有事件發生時,程序可以做其他的事情

我們使用這幾種方式往往比較難編寫一個通用性好的驅動程式,這時又引入了input子系統、fbmem等架構

這些架構用的也是前面那些基礎知識,在編寫驅動程式時,隻要将硬體相關代碼融入這些架構即可