1. 程式人生 > >Linux驅動學習心得

Linux驅動學習心得

① 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提供的子系統來編寫裝置的驅動程式