Linux驅動程式開發實例(第2版)/信息科學與技術叢書

Linux驅動程式開發實例(第2版)/信息科學與技術叢書

《Linux驅動程式開發實例(第2版)/信息科學與技術叢書》是2017年機械工業出版社出版的圖書,作者是馮國進。

基本介紹

  • 中文名:Linux驅動程式開發實例(第2版)/信息科學與技術叢書
  • 作者:馮國進
  • 出版時間:2017年7月1日
  • 出版社:機械工業出版社 
  • 頁數:418 頁 
  • ISBN:9787111567066
  • 開本:16 開 
  • 裝幀:平裝 
內容簡介,圖書目錄,

內容簡介

Linux設備驅動程式是高級應用程式與硬體設備之間的橋樑。驅動程式開發是軟硬體相互結合的技術。本書是一本專門介紹Linux設備驅動程式開發的書籍,涵蓋了Linux驅動程式基礎、驅動模型、記憶體管理、核心同步機制、I2C驅動程式、LCD驅動程式、網路驅動程式、USB驅動程式、輸入子系統驅動程式、塊設備驅動程式、音頻設備驅動等內容。本書以實例為主線,是為Linux設備驅動程式開發人員量身打造的學習精品書籍和實戰指南。本書基於Linux4.5核心,提供了豐富的實例代碼和詳細的注釋,並附贈完整原始碼供讀者下載。本書主要面向各種層次的嵌入式Linux軟硬體開發工程師,也可以作為各類嵌入式系統培訓機構的培訓實驗教材和高校計算機課程教輔書籍。

圖書目錄

第 1 章 Linux 設備驅動程式入門 1
1.1 設備驅動程式基礎 1
1.1.1 驅動程式的概念 1
1.1.2 驅動程式的載入方式 2
1.1.3 編寫可載入模組 3
1.1.4 帶參數的可載入模組 4
1.1.5 模組依賴 5
1.1.6 printk 的等級 7
1.1.7 設備驅動程式類別 8
1.2 字元設備驅動程式原理 9
1.2.1 file_o p erations 結構 9
1.2.2 使用 register_chrdev 註冊字元設備 11
1.2.3 使用 cdev_add 註冊字元設備 14
1.2.4 字元設備的讀寫 16
1.2.5 IOCTL 接口 17
1.2.6 seek 接口 20
1.2.7 poll 接口 22
1.2.8 異步通知 26
1.3 seq_file 機制 28
1.3.1 seq_file 原理 28
1.3.2 seq_file 實例 29
1.4 /proc 檔案系統 35
1.4.1 /proc 檔案系統概述 35
1.4.2 /proc 檔案系統接口 36
1.5 Linux 核心導讀 40
1.5.1 Linux 核心組成 40
1.5.2 Linux 的代碼結構 42
1.5.3 核心 Makefile 43
第 2 章 Linux 設備驅動模型 44
2.1 核心對象 44
2.1.1 Kobject 44
2.1.2 kobj_type 45
2.1.3 Kset 45
2.2 設備模型層次 46
2.3 sysfs 檔案系統 49
2.4 platform 概念 51
2.5 Attributes 56
2.6 設備事件通知 60
2.6.1 kobject uevent 60
2.6.2 uevent helper 61
2.6.3 udev 63
2.7 設備樹 64
第 3 章 Linux 核心同步機制 67
3.1 原子操作 67
3.2 鎖機制 68
3.2.1 自旋鎖 68
3.2.2 讀寫鎖 70
3.2.3 RCU 71
3.2.4 信號量 75
3.2.5 讀寫信號量 77
3.2.6 互斥量 77
3.3 等待佇列 78
3.3.1 等待佇列原理 78
3.3.2 阻塞模式讀實例 78
3.3.3 完成事件 81
3.4 通知鏈 83
第 4 章 記憶體管理與鍊表 86
4.1 物理地址和虛擬地址 86
4.2 記憶體分配與釋放 87
4.3 cache 88
4.4 IO 連線埠到虛擬地址的映射 88
4.4.1 靜態映射 88
4.4.2 ioremap 89
4.5 核心空間到用戶空間的映射 90
4.5.1 mmap 接口 90
4.5.2 mmap 系統調用 91
4.6 DMA 映射 93
4.7 核心鍊表 93
4.7.1 Linux 核心中的鍊表 93
4.7.2 核心鍊表實例 95
第 5 章 任務與調度 98
5.1 schedule 98
5.2 核心執行緒 99
5.3 核心調用應用程式 101
5.4 軟中斷機制 103
5.4.1 軟中斷原理 103
5.4.2 tasklet 106
5.5 工作佇列 108
5.5.1 工作佇列原理 108
5.5.2 延遲工作佇列 110
5.6 核心時間 110
5.6.1 Linux 下的時間概念 110
5.6.2 Linux 下的延遲 111
5.6.3 核心定時器 112
第 6 章 簡單硬體設備驅動程式 115
6.1 硬體基礎知識 115
6.1.1 硬體設備原理 115
6.1.2 時序圖原理 116
6.1.3 嵌入式 Linux 系統構成 117
6.1.4 硬體初始化 117
6.1.5 clk 體系 120
6.2 dev/mem 與 dev/kmem 121
6.3 暫存器訪問 124
6.3.1 S3C6410X 地址映射 124
6.3.2 S3C6410X 看門狗驅動程式實例 128
6.4 電平控制 131
6.4.1 S3C6410X LED 驅動程式實例 132
6.4.2 掃描型按鍵驅動程式實例 135
6.5 硬體中斷處理 137
6.5.1 硬體中斷處理原理 137
6.5.2 中斷型按鍵驅動程式實例 141
6.6 看門狗驅動架構 146
6.7 RTC 驅動 148
6.8 LED 類設備 153
第 7 章 I2C 設備驅動程式 157
7.1 I2C 接口原理 157
7.2 Linux 的 I2C 驅動程式架構 159
7.2.1 I2C 適配器 160
7.2.2 I2C 算法 161
7.2.3 I2C 從設備 161
7.2.4 I2C 從設備驅動 162
7.2.5 I2C 從設備驅動開發 163
7.3 I2C 控制器驅動 163
7.3.1 S3C2410X 的 I2C 控制器 163
7.3.2 S3C2410X 的 I2C 控制器驅動 164
7.4 通用 I2C 從設備 172
7.4.1 通用 I2C 從設備驅動 172
7.4.2 通過 read 與 write 接口讀寫 174
7.4.3 通過 I2C_RDWR 命令讀寫 177
7.4.4 I2Ctools 180
7.5 個性化 I2C 從設備驅動 181
第 8 章 TTY 與串口驅動程式 185
8.1 TTY 概念 185
8.2 Linux TTY 驅動程式體系 185
8.2.1 TTY 驅動程式架構 185
8.2.2 TTY 檔案層 186
8.2.3 線路規程層 188
8.2.4 TTY 驅動層 190
8.2.5 TTY 數據鏈路分析 193
8.3 串口驅動層 194
8.3.1 uart_driver 194
8.3.2 uart_port 195
8.4 S3C6410X 串口設備驅動程式 197
8.5 TTY 套用層 201
第 9 章 Framebuffer 驅動程式 203
9.1 Linux Framebuffer 驅動程式原理 203
9.1.1 Framebuffer 核心數據結構 203
9.1.2 Framebuffer 操作接口 206
9.1.3 Framebuffer 驅動的檔案接口 207
9.1.4 Framebuffer 驅動框架代碼分析 209
9.2 S3C6410X 顯示控制器 210
9.3 S3C6410X LCD 驅動程式實例 215
9.3.1 註冊與初始化 215
9.3.2 fb_ops 實現 220
9.3.3 DMA 傳輸機制 222
9.3.4 核心配置 227
9.4 Framebuffer 套用層 227
9.5 Qt 界面系統移植 229
第 10 章 輸入子系統 231
10.1 Linux 輸入子系統概述 231
10.2 Linux 輸入子系統原理 231
10.2.1 輸入設備 232
10.2.2 輸入事件 233
10.2.3 input Handler 層 234
10.2.4 常用的 Input Handler 236
10.3 輸入設備套用層 241
10.4 鍵盤輸入設備驅動程式實例 243
10.5 Event 接口實例 249

相關詞條

熱門詞條

聯絡我們