本節書摘來自異步社群《linux 裝置驅動開發詳解(第2版)》一書中的第1章,第1.7節,作者:宋寶華著,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視
linux 裝置驅動開發詳解(第2版)
本書第1篇給您打下linux裝置驅動的基礎。第1章簡要地介紹了裝置驅動的作用,并從無作業系統的裝置驅動引出了linux作業系統下的裝置驅動,介紹了本書所基于的開發環境。第2章系統地講解了一個linux驅動工程師應該掌握的硬體知識,為工程師打下linux驅動程式設計的硬體基礎,講解了各種類型的cpu、存儲器和常見的外設,并闡述了硬體時序分析方法和資料手冊閱讀方法。第3章将linux裝置驅動放在linux 2.6核心背景中進行講解,說明linux核心的程式設計方法。由于驅動程式設計也在核心程式設計的範疇,是以,這一章實質是為編寫linux裝置驅動打下軟體基礎。
第2篇講解linux裝置驅動程式設計的基礎理論、字元裝置驅動及裝置驅動設計中涉及的并發控制、同步等問題。第4、5章分别講解linux核心子產品和linux裝置檔案系統,第6~9章以虛拟裝置globalmem和globalfifo為主線,逐漸給其添加進階控制功能,第10、11章分别闡述linux驅動程式設計中所涉及的中斷和定時器、核心和i/o操作處理方法,本篇的第12章講解了linux裝置驅動工程化的一些問題,屬于承前啟後的一章。
第3篇剖析複雜裝置驅動的體系架構,每一章都給出了具體的執行個體。所涉及的裝置包括塊裝置、終端裝置、i2c擴充卡與i2c裝置、網絡裝置、pci裝置、usb裝置、lcd裝置、flash裝置等。這一部分的講解方法是抽象與具體相結合,先以模闆的形式給出各種裝置驅動的設計,然後用具體執行個體裝置的驅動填充對應的模闆。
第4篇分析了linux裝置驅動的調試和移植方法。由于在linux裝置驅動的設計工作中人們強調多快好省,是以,如果能友善地把現有的其他平台中的驅動移植到linux 2.6平台,或者将類似裝置的驅動進行簡單修改就運用于新的裝置,那将會極大地縮短工程的實施時間。本書的最後幾章對linux裝置驅動移植中涉及的理論以及移植的技巧進行了講解。