匯流排裝置驅動框架是一種類似於輸入子系統的框架。
匯流排裝置驅動,顧名思義,共有三個模組
負責硬體資源的裝置(device)
負責處理硬體事務並且連線其他功能模組的驅動(driver)
連線這兩者的匯流排(bus)。
其過程分為以下步驟:
1.當加入乙個裝置時,
如果該裝置支援中斷喚醒執行緒,那麼在中斷處理程式內部就獲取該裝置的資源資訊,然後構建device結構體,加入匯流排的device鍊錶,
或者我們可以自己編寫模組,在模組中填寫該硬體的資源,然後構建device結構體,加入device鍊錶。
2.對於新加入的device,通過比對driver鍊錶的driver結構體的.id_table,尋找合適的驅動
3.當找到合適的driver後,會呼叫該driver的.probe函式,而device結構體的指標會隨著流程傳過來給.probe函式,然後我們就能通過傳過來的device操作硬體資源了。
對於新加入的driver,需要做的只是把driver結構體進行註冊,並且編寫其成員.probe函式
可以說,.probe函式是匯流排裝置驅動模式的入口,因為基本上餘下的所有操作都從.probe函式開始。
比如說,我們可以在.probe函式內部構建子輸入系統的input_dev,然後進行註冊;
又或者,可以在.probe函式內部分配並初始化usb控制塊,最後submit,使能usb傳輸;
匯流排裝置驅動框架主要的目的是分離硬體資源跟操作,如果硬體資源變動,或者操作需要修改,那就只需要修改一部分。
匯流排裝置驅動框架程式
這裡總結下簡單的匯流排裝置驅動的框架程式。0 建立資料夾busdevdrv 1 匯流排 在資料夾內建立匯流排檔案bus.c,如下。include include include include include module author sjwangjinbao module license dua...
Linux匯流排裝置驅動框架的理解
linux的裝置驅動框架,即某類裝置對應的驅動的框架。這裡是 linux匯流排裝置驅動框架 應該這樣理解,linux的匯流排裝置 驅動框架,即匯流排式裝置對應的驅動的框架 個人理解 1 驅動代表著操作裝置的方式和流程。對於應用來說,應用程式open開啟裝置後,接著就read訪問這個裝置,驅動就是如何...
匯流排 裝置和驅動
一 匯流排 linux中,使用struct bus type表示一條匯流排,該結構定義在linux device.h中,先只看其中的兩個字段,name表示匯流排的名字,比如usb i2c spi等,match方法用於匹配新增到該匯流排上的裝置和驅動,如果匹配成功,則呼叫驅動中的probe函式。註冊一...