當驅動程式已經編寫好時,應用程式怎麼利用該驅動程式去訪問裝置呢?
當驅動程式已經編寫好,則需要對其進行編譯以及安裝。在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 ...