驅動開發
字元裝置,塊裝置,網路裝置
字元裝置
以位元組流的方式訪問,
不能隨機訪問
有例外,顯示卡、eeprom可以隨機訪問
eeprom可以擦寫1億次,是一種字元裝置,可以隨機訪問
讀寫是直接訪問硬體的
flash 擦寫次數有限,一百萬次,容易有壞塊
塊裝置
能隨機訪問
以」塊「為單位進行訪問
塊大小一般為512位元組
塊的大小由硬體決定
是核心進行資料傳輸的基本單位
硬碟結構:
格式化分割槽是以柱面為單位的,即硬碟的柱面
如果有10個盤面,就有十個柱面
對於嵌入式裝置
如果是flash的話,結構如下:
flash是以塊為單位
有些是頁為單位,每頁又有很多塊
字元裝置和塊裝置根本使用的介面不同,
即兩種架構
塊裝置也可以用字元裝置的驅動程式的架構來驅動,但是這樣效率不高
字元裝置一般可以直接訪問硬體來讀取資料
塊裝置一般要經過系統快取來讀取資料
比如說以前的老u盤剛傳完電影,直接拔下後可能讀不出來這個電影,或者執行有問題,這是因為寫入的時候是先寫在快取,再非同步寫入硬體的
linux萬物皆檔案有例外,網路裝置在linux中不體現為檔案
操作方式是以socket套接字的方式進行訪問
網路裝置接收外部世界(本系統之外)的請求
驅動程式的安裝方法:
1、直接編譯核心
2、需要的時候手動安裝
塊裝置和字元裝置驅動比較
塊裝置和字元裝置驅動比較 linux中i o裝置分為兩類 塊裝置和字元裝置。兩種裝置本身沒有嚴格限制,但是,基於不同的功能進行了分類。1 字元裝置 提供連續的資料流,應用程式可以順序讀取,通常不支援隨機訪問。相反,此類裝置支援按位元組 字元來讀寫資料。舉例來說,數據機是典型的字元裝置。2 塊裝置 應...
字元裝置驅動簡介
通過字元裝置檔案,應用程式可以使用相應的字元裝置驅動程式來控制字元裝置。建立字元裝置檔案的方法 字元裝置在核心中使用struct cdev來描述。struct cdevlinux核心中使用dev t型別來定義裝置號,dev t這種型別其實質為32位的unsigned int,其中高12位為主裝置號,...
驅動 linux裝置驅動 字元裝置驅動開發
preface 前面對linux裝置驅動的相應知識點進行了總結,現在進入實踐階段!linux 裝置驅動入門篇 linux 裝置驅動掃盲篇 fedora下的字元裝置驅動開發 開發乙個基本的字元裝置驅動 在linux核心驅動中,字元裝置是最基本的裝置驅動。字元裝置包括了裝置最基本的操作,如開啟裝置 關閉...