深入理解Linux驅動程式設計

深入理解Linux驅動程式設計

《深入理解Linux驅動程式設計》是清華大學出版社2015年出版的圖書,本書基於Linux核心3.8.13原始碼及相關實例向讀者系統而詳盡地介紹和分析了Linux設備驅動程式開發框架、原理和方法。

基本介紹

  • 書名:深入理解Linux驅動程式設計
  • 作者:吳國偉、姚琳、畢成龍
  • ISBN:9787302401636
  • 定價:29元
  • 出版社:清華大學出版社
  • 出版時間:2015.11.01
內容簡介,目錄,

內容簡介

本書基於Linux核心3.8.13原始碼及相關實例向讀者系統而詳盡地介紹和分析了Linux設備驅動程式開發框架、原理和方法。全書共分13章,內容包括字元設備、塊設備、網路設備、MMC/SD驅動、USB驅動、匯流排驅動及Flash驅動的開發機制和實例。 本書各章均首先概要介紹各模組的實現原理,隨後列舉各模組中的關鍵數據結構,再結合原始碼及實例分析介紹,讓讀者更全面地了解Linux驅動開發。 本書內容豐富,概念和原理講解細緻、深入淺出。其中,有關代碼的部分都標有注釋以詳細介紹功能,書中的設計和分析也配以編程實例幫助理解。 本書適合作為高年級本科生、研究生和從事嵌入式系統開發設計的工程技術人員。

目錄

第1章Linux核心組成和機制
1.1Linux核心版本與發展
1.1.1Linux作業系統的誕生
1.1.2Linux核心版本的變遷
1.2Linux核心編譯
1.2.1獲取核心源碼
1.2.2核心源碼樹
1.2.3編譯核心
1.3Linux核心組成
1.4Linux核心機制
1.4.1核心啟動過程
1.4.2模組機制
第2章Linux核心設備管理方式
2.1devfs設備檔案系統
2.2sysfs檔案系統
2.3udev設備檔案系統
2.4主要數據結構
2.4.1kobject
2.4.2ktype
2.4.3kset
2.4.4三者關係
2.5熱插拔設備管理機制
2.5.1熱插拔事件流程
2.5.2涉及的模組
2.5.3關鍵驅動函式
第3章Linux驅動開發基礎
3.1同步機制
3.1.1核心同步機制分類
3.1.2自旋鎖與信號量的比較
3.2make及makefile
3.2.1makefile檔案
3.2.2編寫makefile檔案
3.2.3make命令
3.3調試方法
3.3.1printk
3.3.2/proc檔案系統
3.3.3調試器及相關工具
第4章Linux字元設備驅動開發
4.1關鍵數據結構
4.2接口函式部分核心代碼分析
4.3字元設備驅動設計
4.3.1字元設備驅動設計場景描述
4.3.2字元設備驅動設計過程
第5章Linux核心中斷機制
5.1中斷
5.2中斷處理
5.2.1註冊中斷處理程式
5.2.2編寫中斷處理程式
5.3中斷上半部與下半部的對比
5.4中斷下半部
5.5BH機制與任務佇列機制
5.6軟中斷
5.6.1軟中斷的實現
5.6.2軟中斷的使用
5.7tasklet
5.7.1tasklet的實現
5.7.2tasklet的使用
5.8工作佇列
5.8.1工作佇列的實現
5.8.2工作佇列的使用
第6章Linux塊設備驅動開發
6.1塊設備管理機制
6.1.1塊設備基本概念
6.1.2塊設備在Linux中的結構
6.2塊設備關鍵數據結構
6.2.1gendisk數據結構
6.2.2block_device_operations數據結構
6.2.3request數據結構
6.2.4request_queue數據結構
6.2.5bio數據結構
6.3塊設備驅動設計函式
6.3.1塊設備驅動註冊與註銷函式
6.3.2塊設備驅動打開與關閉函式
6.3.3塊設備驅動ioctl、read和write函式
6.3.4塊設備驅動的請求函式
6.4Ramdisk塊設備驅動實例
6.4.1Ramdisk塊設備驅動實例分析
6.4.2Ramdisk塊設備驅動實例測試
第7章Linux網路設備驅動開發
7.1網路設備
7.1.1網路系統分層結構
7.1.2網路設備管理
7.2NAPI機制
7.3關鍵數據結構
7.4核心提供的網路設備驅動設計函式
7.4.1alloc_netdev
7.4.2register_netdev
7.4.3ether_setup
7.4.4unregister_netdev
7.5網路設備驅動開發實例
7.5.1snull_init_module函式
7.5.2snull_init函式
7.5.3相關操作函式
第8章LinuxMMC/SD驅動開發
8.1MMC子系統基本架構
8.2關鍵數據結構
8.2.1基本數據結構
8.2.2基本數據結構主要成員及關係
8.3MMC/CD卡驅動實例
8.3.1MMC/SD卡設備驅動設計場景
8.3.2MMC/SD卡設備驅動實例實現
第9章LinuxUSB驅動開發
9.1USB設備管理機制
9.1.1USB與串口
9.1.2USB設備屬性拓撲結構管理機制
9.1.3USB設備邏輯組織管理機制
9.2USB驅動關鍵數據結構分析
9.3USB設備驅動函式及其使用說明
9.3.1客戶端驅動管理
9.3.2USB設備配置和管理
9.3.3主機控制器的管理
9.3.4協定控制命令集和數據傳輸管理
9.4USB設備驅動開發實例
9.4.1實例開發場景設計
9.4.2USB設備驅動開發實例的實現
9.4.3驅動測試分析
第10章LinuxI2C匯流排設備驅動
10.1Linux匯流排驅動及I2C匯流排
10.1.1Linux匯流排驅動設計過程
10.1.2I2C匯流排的工作原理與套用
10.1.3匯流排基本操作
10.2LinuxI2C體系結構
10.2.1Linux的I2C體系結構組成
10.2.2LinuxI2C關鍵數據結構
10.3LinuxI2C核心
10.4LinuxI2C匯流排驅動
10.4.1I2C適配器驅動載入與卸載
10.4.2I2C匯流排通信方法
10.5LinuxI2C設備驅動
10.5.1LinuxI2C設備驅動模組載入與卸載
10.5.2LinuxI2C設備驅動的數據傳輸
10.5.3Linuxi2cdev.c檔案分析
10.6LinuxI2C驅動實例——EEPROM
10.6.1初始化
10.6.2探測設備
10.6.3檢查適配器的功能
10.6.4訪問設備
10.6.5其他函式
第11章LinuxPCI匯流排設備驅動
11.1PCI匯流排設備
11.1.1PCI匯流排
11.1.2PCI設備
11.2PCI設備驅動結構
11.3PCI設備驅動實例
11.3.1PCI設備驅動程式基本框架
11.3.2初始化設備模組
11.3.3打開設備模組
11.3.4數據讀寫和控制信息模組
11.3.5中斷處理模組
11.3.6釋放設備模組
11.3.7卸載設備模組
第12章Linux輸入設備驅動
12.1Linux輸入子系統結構
12.2輸入設備驅動核心數據結構分析
12.3Linux輸入設備驅動實例
12.3.1輸入設備驅動流程
12.3.2USB滑鼠驅動編寫實例
第13章LinuxFlash驅動開發
13.1Flash存儲器
13.2LinuxMTD系統層次結構
13.3關鍵數據結構
13.3.1mtd_info結構體
13.3.2mtd_table結構體
13.3.3mtd_part結構體
13.3.4mtd_partition結構體
13.3.5map_info結構體
13.4驅動相關函式
13.4.1add_mtd_device函式
13.4.2del_mtd_device函式
13.4.3add_mtd_partitions函式
13.4.4del_mtd_partitions函式
13.4.5do_map_probe函式
13.5Nor型Flash驅動實例
13.5.1Nor型Flash驅動設計流程
13.5.2Nor型Flash驅動詳細設計
13.6Nand型Flash驅動實例
13.6.1Nand型Flash設備驅動設計步驟
13.6.2Nand型Flash驅動實現

相關詞條

熱門詞條

聯絡我們