10 字元裝置驅動模型 1 使用字元驅動程式

2021-07-25 08:32:22 字數 954 閱讀 4778

當驅動程式已經編寫好時,應用程式怎麼利用該驅動程式去訪問裝置呢? 

當驅動程式已經編寫好,則需要對其進行編譯以及安裝。在linux系統中,驅動程式通常採用核心模組的程式結構來進行編碼。因此,編譯/安裝乙個驅動程式,其實質就是編譯/安裝乙個核心模組。

當編譯安裝好驅動程式後,下一步就是建立字元裝置檔案。字元裝置檔案是應用程式與字元裝置的橋梁,通過字元裝置檔案,應用程式可以使用相應的字元裝置驅動程式來控制字元裝置。應用程式通過檔名找到字元裝置檔案,字元裝置檔案通過主裝置號與裝置驅動程式建立起連線。

建立字元裝置檔案的方法有兩種: 

①使用mknod命令

mknod /dev/檔名 c 主裝置號 次裝置號
檔名可以任意取; 

c表示字元裝置檔案; 

主裝置號:通過命令cat /proc/devices 可以檢視裝置驅動的主裝置號,當字元裝置檔案的主裝置號與裝置驅動的主裝置號一致時,該裝置檔案與裝置驅動建立起連線。此時訪問裝置檔案就相當於訪問裝置驅動。 

次裝置號可以取0~255中任意乙個整數。 

例:mknod /dev/memdev0 c 253 0 

則建立了檔案/dev/memdev0,該檔案是乙個字元裝置檔案,並且與主裝置號為253的驅動程式建立了連線。

②使用函式在驅動程式中建立

編譯安裝好裝置驅動程式並且建立了裝置檔案後,此時可以編寫應用程式來訪問裝置了。應用程式中可以利用open(),read(),write()等操作檔案的函式來訪問裝置檔案,從而間接訪問裝置。

在開發板執行某個程式時,作業系統可能會提示找不到該程式。問題可能是由於該程式是動態編譯的,因此執行時需要動態庫的支援,而開發板中卻沒有安裝動態庫,因此提示找不到程式。解決方法:可以給開發板安裝動態庫,也可以採用動態編譯程式。

驅動實驗(1)字元裝置驅動實驗

練習字元裝置驅動的兩種模板之後,編寫乙個字元驅動程式 chartest虛擬裝置 由驅動程式4管理,所指向的裝置是64號裝置,類似於串列埠終端或者字元裝置終端 include include include include include include define chrdevbase major...

2 6字元裝置驅動

chardev.c include include for file f op include include for copy to user include for cdev cdev init,cdev add module license gpl module author helight ...

Linux裝置驅動程式學習(1) 字元裝置驅動程式

linux裝置驅動程式學習 1 字元裝置驅動程式 一 分配裝置號 1 對字元裝置的訪問是通過檔案系統內的裝置名稱進行的 dev ttys0 在核心中,include dev t 用來儲存裝置編號 包括主裝置號和次裝置號。由dev t獲得主次裝置號 major dev t dev minor dev ...