1. 程式人生 > >linux 註冊字元類裝置

linux 註冊字元類裝置

配記憶體空間函式kmalloc
– 分配連續的虛擬地址,用於小記憶體分配。在include/linux/slab.h檔案中。
– 引數1:申請的記憶體大小(最大128K),

– 引數2:GFP_KERNEL,代表優先權,記憶體不夠可以延遲分配

• 清空記憶體空間的資料函式memset
–可以清空記憶體空間,也就是全部寫為0
–引數1:記憶體地址
–引數2:0

–引數3:記憶體長度

字元裝置初始化函式cdev_init
-在標頭檔案include/linux/cdev.h中

-引數1:cdev字元裝置檔案結構體

-引數2:file_operations結構體

-註冊裝置本質是向linux裝置檔案中新增資料,這些資料需要初始化

• 字元設備註冊函式cdev_add
-在標頭檔案include/linux/cdev.h中
-引數1:cdev字元裝置檔案結構體
-引數2:裝置號
-引數3:裝置範圍大小

-向系統註冊裝置,也就是向linux系統新增資料

• 解除安裝裝置函式cdev_del
– 引數1:cdev結構體

– 移除字元裝置

• 編譯
• 測試
– 通過載入模組後的列印資訊,可以觀察到驅動載入的過程以及註冊裝置
的反饋資訊