本書簡介
提供大量Linux驅動程式開發實例,讓您一次學會獨立開發各類Linux裝置驅動!
本書是一本介紹Linux裝置驅動程式開發理論、框架與實例的書,本書基於LDD6410開發板,以Linux 2.6版本核心為藍本,詳細介紹自旋鎖、訊號量、完成量、中斷頂/底半部、定時器、暫存器和I/O映射以及異步通知、阻塞I/O、非阻塞I/O等Linux裝置驅動程式理論;字元裝置、區塊裝置、TTY裝置、I2C裝置、LCD裝置、音訊裝置、USB裝置、網路裝置、PCI裝置等Linux裝置驅動程式的架構和框架中各個複雜資料架構和函數的關係。
本書特色
第一版暢銷3年,此版內容全面升級
業界權威機構和專家強力推薦
多年培訓、研發經驗的總結
各界推薦
名人推薦:
本書系統講解Linux核心驅動程式的重要技術,涉及Linux核心程式設計,核心模組、裝置檔案系統、同步互斥機制等。本書針對具體硬體的真實周邊裝置,結合實際周邊裝置的硬體邏輯,講解了常見類型驅動程式的編寫方法和實現細節。對廣大Linux愛好者而言,是一本值得推薦的好書。
陳渝(清華大學副教授)
本書有一個非常突出的特點─實用,全書以大量實例來引導讀者編寫以及移植Linux裝置驅動程式,這些實例是作者多年Linux裝置驅動程式開發經驗的總結,讀者一定會從中受益。
郭淳學(中國軟件行業學會嵌入式系統分會副理事長兼秘書長)
在Linux核心原始碼程式的各個子系統中,裝置驅動程式是最大的一個子樹分支,目前最新的Linux核心支援70多種裝置驅動程式家族。Linux下的驅動程式開發一直被認為是一門藝術,本書是通往Linux裝置驅動程式開發殿堂的鑰匙。
史應生(紅帽專家服務團隊資深諮詢顧問,RHCA、RHCSS中國第一人)
裝置驅動程式是操作系統最具多樣性與複雜性的部分。回想嵌入式系統教學之初,我幾乎買遍了市面上的Linux圖書,也沒有找到任何模組化驅動程式的開發實例。本書語言通俗易懂,結構清晰、作者有豐富的培訓和開發經驗,是中國少有的驅動程式開發書籍。
馬忠梅(北京理工大學副教授)
名人推薦:本書系統講解Linux核心驅動程式的重要技術,涉及Linux核心程式設計,核心模組、裝置檔案系統、同步互斥機制等。本書針對具體硬體的真實周邊裝置,結合實際周邊裝置的硬體邏輯,講解了常見類型驅動程式的編寫方法和實現細節。對廣大Linux愛好者而言,是一本值得推薦的好書。
陳渝(清華大學副教授)
本書有一個非常突出的特點─實用,全書以大量實例來引導讀者編寫以及移植Linux裝置驅動程式,這些實例是作者多年Linux裝置驅動程式開發經驗的總結,讀者一定會從中受益。
郭淳學(中國軟件行業學會嵌入式系統分會副理事長兼秘書...
目錄
第1篇Linux裝置驅動程式入門
主要講解Linux 裝置驅動程式的基礎。
● 第1章主要講解裝置驅動程式的作用,並從無作業系統的裝置驅動程式引出了Linux作業系統下的裝置驅動程式以及全書所用實驗環境的安裝方法。
● 第2章系統地講解了一個Linux 驅動程式工程師應該掌握的硬體知識,使讀者打下Linux 裝置驅動程式開發的硬體基礎。本章涵蓋了各種類型的CPU、記憶體和常見的週邊設備,並講解了硬體時序分析方法和儀器使用方法。
● 第3章將Linux 裝置驅動程式放在Linux 2.6 核心背景中進行講解,說明Linux 核心的基本原理和程式設計方法,為編寫Linux 裝置驅動程式打下軟體基礎。
Ch1 Linux 裝置驅動程式概述及開發環境建構
Ch2 驅動程式設計的硬體基礎
Ch3 Linux 核心及核心程式設計
第2篇 Linux裝置驅動程式核心理論
主要講解Linux 裝置驅動程式設計的基礎理論、字元裝置驅動程式、裝置驅動程式設計中涉及的併發控制、同步等問題以及Linux 驅動程式的工程化。
● 第4、5 章分別講解Linux 核心模組和Linux 裝置檔案系統。
● 第6 ~ 9 章以虛擬裝置globalmem 和global.fo 為主軸講解了字元裝置驅動程式的編寫方法,並講解了併發控制、阻塞與非阻塞、非同步I/O 等高階控制功能。
● 第10、11 章分別講解Linux 驅動程式設計中所涉及的中斷和定時器,核心和I/O操作處理方法。
Ch4 Linux 核心模組
Ch5 Linux 檔案系統與裝置檔案系統
Ch6 字元裝置驅動程式
Ch7 Linux 裝置驅動程式中的並行控制
Ch8 Linux 裝置驅動程式中的阻塞與非阻塞I/O
Ch9 Linux 裝置驅動程式中的非同步通知與非同步I/O
Ch10中斷與時鐘
Ch11記憶體與I/O 存取
Ch12工程中的Linux 裝置驅動程式
第3篇 Linux裝置驅動程式實例
深刻剖析複雜裝置驅動程式的硬體架構,每一章都給出了具體的實例,涉及的裝置包括區塊裝置、終端裝置、I2C 適配器與I2C 裝置、網路裝置、PCI 裝置、USB 主機控制器、USB 裝置、UDC、gadget、LCD 裝置、Flash 裝置等。
Ch13 Linux 區塊裝置驅動程式
Ch14 Linux 終端裝置驅動程式
Ch15 Linux 的I2C 核心、匯流排與裝置驅動程式
Ch16 Linux 網路裝置驅動程式
Ch17 Linux 音頻裝置驅動程式
Ch18 LCD 裝置驅動程式
Ch19 Flash 裝置驅動程式
Ch20 USB 主機與裝置驅動程式
Ch21 PCI 裝置驅動程式
第4篇 Linux裝置驅動程式除錯、移植
詳細講解了Linux 裝置驅動程式和核心的除錯和移植方法。
● 第22章講解了Linux裝置驅動程式的開發環境建構以及借助printk、oops、/proc、strace、模擬器進行驅動程式除錯的方法,最後介紹了Linux 的性能最佳化工具。
● 第23 章講解了開發可移植驅動程式程式以及借助晶片範例程式、demo 板驅動程式和其他作業系統驅動程式等現成程式碼進行Linux 驅動程式快速移植的方法,最後介紹了如何在一塊新的SoC 和電路板上建構Linux。
Ch22 Linux 裝置驅動程式的除錯
Ch23 Linux 裝置驅動程式的移植
第1篇Linux裝置驅動程式入門
主要講解Linux 裝置驅動程式的基礎。
● 第1章主要講解裝置驅動程式的作用,並從無作業系統的裝置驅動程式引出了Linux作業系統下的裝置驅動程式以及全書所用實驗環境的安裝方法。
● 第2章系統地講解了一個Linux 驅動程式工程師應該掌握的硬體知識,使讀者打下Linux 裝置驅動程式開發的硬體基礎。本章涵蓋了各種類型的CPU、記憶體和常見的週邊設備,並講解了硬體時序分析方法和儀器使用方法。
● 第3章將Linux 裝置驅動程式放在Linux 2.6 核心背景中進行講解,說明Linux 核心的基本原理和程式設計方法,為...