Linux設備與驅動的主要類型 linux是文件型系統,在linux中,一切皆文件,所有硬件都會在對應的目錄(/dev)下面用相應的文件表示。 文件系統的linux下面,都有對于文件與這些設備關聯的,訪問這些文件就可以訪問實際硬件。 通過訪問文件去操作硬件設備,一切都會簡單很多,不需要再調用各種復雜的接口。 直接讀文件,寫文件就可以向設備發送、接收數據。 按照讀寫存儲數據方式,我們可以把設備分為以下幾種:字符設備(character device)、塊設備(Block device)和網絡設備( network interface)。 字符設備(character device):指應用程序采用字符流方式訪問的設備。這些設備節點通常為傳真、虛擬終端和串口調制解調器、鍵盤之類設備提供流通信服務, 它通常只支持順序訪問。字符設備在實現時,大多不使用緩存器。系統直接從設備讀取/寫入每一個字符。 塊設備(Block device):通常支持隨機存取和尋址,并使用緩存器,支持mount文件系統。典型的塊設備有硬盤、SD卡、閃存等,但此類設備一般不需要自己開發,linux對此提過了大部分的驅動。 網絡設備( network interface):是一種特殊設備,它并不存在于/dev下面,主要用于網絡數據的收發。網絡驅動同塊驅動最大的不同在于網絡驅動異步接受外界數據,而塊驅動只對內核的請求作出響應。 上述設備中,字符設備驅動程序適合于大多數簡單的硬件設備,算是各類驅動程序中最簡單的一類,一般也是從這類驅動開始學習,然后再開始學習采用IIC、SPI等通訊接口的一些設備驅動。可以基于此類驅動調試LKT和LCS系列加密芯片。注意7位IIC地址是0x28。
|