Linux驅動學習心得
阿新 • • 發佈:2019-01-23
① Linux驅動子系統一般包含:裝置控制器、裝置、驅動、匯流排
可分為: 1、由匯流排架構的子系統:I2C、SPI、SDI、USB、CAN、PCI
2、無匯流排架構的子系統:Input子系統、幀緩衝子系統、MTD子系統
② 有匯流排架構的子系統需要的資料結構
1、與CPU相關的匯流排介面的裝置控制器
2、與裝置相關的裝置描述
3、與裝置驅動相關的裝置描述
4、與通訊(協議)方法相關
5、與通訊資料相關
6、匯流排描述(I2C_BUS_TYPE,SPI_BUS_TYPE,MMC_BUS_TYPE)
③ 關於字元裝置、塊裝置、網路裝置在Linux驅動中的作用
1、在/dev下建立字元、塊裝置節點,為應用程式提供裝置訪問節點
2、在驅動中向Linux系統註冊字元、塊、網路裝置,並且實現file_operations,blk_operations
注意:總線上的裝置並不表示是裝置節點
④裝置驅動程式的編寫步驟
1、對裝置進行分類(字元、網路、塊裝置)
2、確定與裝置通訊的匯流排型別(I2C、SPI、USB、MMC)
3、確定裝置的操作方法(讀/寫),最終實現對裝置的讀/寫操作
4、利用Linux提供的子系統來編寫裝置的驅動程式