-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

Linux驅動程序開發實例(第2版)

( 簡體 字)
作者:馮國進類別:1. -> 作業系統 -> Linux
   2. -> 程式設計 -> 驅動程式
譯者:
出版社:機械工業出版社Linux驅動程序開發實例(第2版) 3dWoo書號: 47160
詢問書籍請說出此書號!

缺書
NT售價: 445

出版日:7/1/2017
頁數:418
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787111567066
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

內容簡介:

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
10.6 觸摸屏驅動程序實例 253
10.6.1 S3C6410X 觸摸屏控制器 253
10.6.2 S3C6410X 觸摸屏驅動程序 255
10.7 Linux 紅外遙控驅動 263
第 11 章 塊設備驅動與文件系統 268
11.1 塊設備驅動原理 268
11.1.1 block_device 268
11.1.2 gendisk 269
11.1.3 bio 270
11.1.4 請求隊列 271
11.2 Linux 文件系統概述 276
11.2.1 虛擬文件系統 277
11.2.2 日志文件系統和非日志文件系統 278
11.2.3 根文件系統 279
11.2.4 文件系統總結 280
11.2.5 文件系統掛載 280
11.3 虛擬文件系統接口 281
11.3.1 VFS 文件接口 281
11.3.2 VFS 目錄接口 283
11.4 根文件系統制作 284
11.4.1 Busybox 284
11.4.2 shell 基礎 286
11.4.3 根文件系統構建實例 288
11.4.4 添加 mdev 288
11.5 NFS 根文件系統搭建 289
第 12 章 NAND Flash 驅動 293
12.1 MTD 設備層 293
12.1.1 MTD 架構 293
12.1.2 MTD 字符設備 295
12.1.3 MTD 塊設備 300
12.2 NAND Flash 驅動層概述 304
12.2.1 硬件原理 304
12.2.2 NAND 核心層架構 305
12.2.3 NAND Flash 壞塊處理 308
12.3 S3C6410X NAND Flash 驅動 310
12.4 Ubifs 文件系統實例 315
第 13 章 網絡設備驅動程序 319
13.1 網絡設備程序概述 319
13.1.1 網絡設備的特殊性 319
13.1.2 sk_buff 結構 320
13.1.3 網絡設備驅動程序架構 321
13.1.4 虛擬網絡設備驅動程序實例 325
13.1.5 網絡硬件接口的分層結構 329
13.2 DM9000A 網卡驅動程序開發 329
13.2.1 DM9000A 原理 329
13.2.2 DM9000A 驅動程序分析 331
13.2.3 DM9000A 網卡驅動程序移植 341
13.4 ethtool 344
13.5 PHY 芯片驅動 347
13.6 Netlink Socket 352
13.6.1 Netlink 機制 352
13.6.2 Netlink 應用層編程 357
13.6.3 Netlink 驅動程序實例 357
第 14 章 USB 驅動程序 361
14.1 USB 體系概述 361
14.1.1 USB 系統組成 361
14.1.2 USB 主機 361
14.1.3 USB 設備邏輯層次 362
14.2 Linux USB 驅動程序體系 364
14.2.1 USB 總體結構 364
14.2.2 USB 設備驅動 364
14.2.3 USB 設備 365
14.2.4 主機控制器驅動 366
14.2.5 USB 請求塊 urb 367
14.3 USB 設備枚舉 370
14.4 S3C6410X USB 主機控制器驅動程序 372
14.4.1 驅動程序原理分析 372
14.4.2 S3C6410X 加載 U 盤實例 374
14.5 USB 鍵盤設備驅動程序分析 375
第 15 章 音頻設備驅動程序 380
15.1 ALSA 音頻體系 380
15.2 ALSA 核心層 381
15.2.1 聲卡 381
15.2.2 音頻設備 382
15.2.3 PCM 382
15.2.4 音頻控制接口 384
15.2.5 AC97 聲卡 387
15.3 ALSA SOC 架構 388
15.3.1 SOC 聲卡 389
15.3.2 DAI 392
15.3.3 codec 393
15.3.4 SOC 平臺 394
15.3.5 PCM 運行時配置 394
15.3.6 DAPM 397
15.4 ALSA 驅動程序實例 400
15.4.1 S3C6410X 的 AC97 控制單元 401
15.4.2 Machine Driver 402
15.4.3 Platform Driver 403
15.4.4 Codec Driver 408
15.5 ALSA 音頻緩沖邏輯 409
15.6 ALSA 應用編程接口 413
參考文獻 418
序: