定義
設備驅動最通俗的解釋就是“驅使硬體設備行動”。驅動與底層硬體直接打交道,按照硬體設備的具體工作方式,讀寫設備的暫存器,完成設備的輪詢、中斷處理、DMA通信,進行物理記憶體向虛擬記憶體的映射等,最終讓通信設備能收發數據,讓顯示設備能顯示文字和畫面,讓存儲設備能記錄檔案和數據。
分類
(1)字元設備。
(2) 塊設備。
(3) 網路設備。
字元設備
指那些必須以串列順序依次進行訪問的設備,如觸控螢幕、磁帶驅動器、滑鼠等。塊設備可以用任意順序進行訪問,以塊為單位進行操作,如硬碟、軟碟機等。字元設備不經過系統的快速緩衝,而塊設備經過系統的快速緩衝。但是,字元設備和塊設備並沒有明顯的界限,如對於Flash設備,符合塊設備的特點,但是我們仍然可以把它作為一個字元設備來訪問。
重點和難點
(1)編寫Linux設備驅動要求工程師有非常好的硬體基礎,懂得SRAM、Flash、SDRAM、磁碟的讀寫方式,UART、I2C、USB等設備的接口以及輪詢、中斷、DMA的原理,PCI匯流排的工作方式以及CPU的記憶體管理單元(MMU)等。
(2) 編寫Linux設備驅動要求工程師有非常好的C語言基礎,能靈活地運用C語言的結構體、指針、函式指針及記憶體動態申請和釋放等。
(3)編寫Linux設備驅動要求工程師有一定的Linux核心基礎,雖然並不要求工程師對核心各個部分有深入的研究,但至少要明白驅動與核心的接口。尤其是對於塊設備、網路設備、Flash設備、串口設備等複雜設備,核心定義的驅動體系架構本身就非常複雜。
(4) 編寫Linux設備驅動要求工程師有非常好的多任務並發控制和同步的基礎,因為在驅動中會大量使用自旋鎖、互斥、信號量、等待佇列等並發與同步機制。
設備驅動圖書
圖書信息
《Linux設備驅動開發詳解》
作 者:宋寶華
出版社: 人民郵電出版社
出版時間: 2010年11月1日
ISBN: 9787115236579
開本: 16開
定價: 88.00元
圖書目錄
第1篇 Linux設備驅動入門
第1章 Linux設備驅動概述及開發環境構建 2
第2章 驅動設計的硬體基礎 21
第3章 Linux核心及核心編程 53
第2篇 Linux設備驅動核心理論
第4章 Linux核心模組 82
第5章 Linux檔案系統與設備檔案系統 92
第6章 字元設備驅動 118
第7章 Linux設備驅動中的並發控制 139
第8章 Linux設備驅動中的阻塞與非阻塞I/O 161
第9章 Linux設備驅動中的異步通知與異步I/O 176
第10章 中斷與時鐘 193
第11章 記憶體與I/O訪問 213
第12章 工程中的Linux設備驅動 242
第3篇 Linux設備驅動實例
第13章 Linux塊設備驅動 272
第14章 Linux終端設備驅動 304
第15章 Linux的I2C核心、匯流排與設備驅動 333
第16章 Linux網路設備驅動 363
第17章 Linux音頻設備驅動 388
第18章 LCD設備驅動 440
第19章 Flash設備驅動 479
第20章 USB主機與設備驅動 507
第21章 PCI設備驅動 547
第4篇 Linux設備驅動調試、移植
第22章 Linux設備驅動的調試 564
第23章 Linux設備驅動的移植 602
參考文獻 631