Linux驅動入門基礎基礎知識

Quartz010發表於2016-10-16

嵌入式折騰瞭如此之久,今天終於有幸的點亮了第一個LED——故記錄之

在Linux下,驅動可以分為三大類,字元裝置,塊裝置,和網路介面。


這次完成LED驅動的就是的字元類裝置(character device),對它的讀寫,就像普通檔案一樣,以位元組為單位的進行讀寫。這樣就可以通過Linux下的標準函式 open、close、read、write等這些來呼叫了。

Linux之於驅動,相當於一個插槽,驅動在linux下是*.ko的檔案,可以通過insmod,和rmmod隨意的載入和解除安裝。
當我們用insmo命令,載入一個模組的時候,我們可以通過

lsmod
或者
cat /proc/devices

來檢視我們所載入的模組(module),會發現其名稱後面的有數字,我們稱之為主裝置號。這是載入驅動後,系統給分配的版本號。


Linux下,得益於其強大的VFS設計,這樣就有了萬物皆檔案的性質。所以,我們的驅動所對應的裝置,也是檔案。
我們可以通過
mknod /dev/xxx c 111 0

這樣一條命令建立一個節點(node)。
然後,我們就可以通過其提供的標準檔案函式,來控制我們的裝置了。


驅動基礎知識就到這裡了,後面講詳細的完成一個led驅動的設計

相關文章