注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機(jī)/網(wǎng)絡(luò)計算機(jī)組織與體系結(jié)構(gòu)嵌入式Linux高級驅(qū)動教程

嵌入式Linux高級驅(qū)動教程

嵌入式Linux高級驅(qū)動教程

定 價:¥88.00

作 者: 陳志發(fā),周中孝,李志超 著; 深圳信盈達(dá)電子有限公司 編
出版社: 電子工業(yè)出版社
叢編項: 信盈達(dá)技術(shù)創(chuàng)新系列圖書
標(biāo) 簽: LINUX 操作系統(tǒng)/系統(tǒng)開發(fā) 計算機(jī)/網(wǎng)絡(luò)

ISBN: 9787121230264 出版時間: 2014-09-01 包裝: 平裝
開本: 16開 頁數(shù): 604 字?jǐn)?shù):  

內(nèi)容簡介

  本書涉及嵌入式Linux系統(tǒng)設(shè)備驅(qū)動開發(fā)的各個環(huán)節(jié)。全書共21章,內(nèi)容包括:Linux系統(tǒng)基本操作,嵌入式Linux開發(fā)環(huán)境的搭建,Linux設(shè)備驅(qū)動的概念,Linux內(nèi)核模塊編程,字符設(shè)備驅(qū)動(含LED驅(qū)動)的開發(fā)及完善,內(nèi)核同步機(jī)制,中斷驅(qū)動,內(nèi)核工作隊列,內(nèi)核定時器,平臺設(shè)備、LCD設(shè)備、Linux觸摸屏和溫度傳感器的驅(qū)動,以及Linux內(nèi)核各子系統(tǒng)(clock子系統(tǒng)、輸入子系統(tǒng)、IIC子系統(tǒng)、SPI子系統(tǒng)和MTD子系統(tǒng))的介紹。本書由深圳信盈達(dá)嵌入式學(xué)院的嵌入式開發(fā)工程師編寫,并配備了相關(guān)的實(shí)驗(yàn)和完整的驅(qū)動程序代碼及測試應(yīng)用程序代碼。

作者簡介

  深圳信盈達(dá)電子有限公司、是一家專注于單片機(jī)、ARM、嵌入式產(chǎn)品開發(fā)和技術(shù)培訓(xùn)的高新技術(shù)服務(wù)企業(yè),公司下設(shè)開發(fā)部和技術(shù)培訓(xùn)部。公司開發(fā)部為國內(nèi)外眾多客戶開發(fā)多款基于嵌入式單片機(jī)、ARM等技術(shù)的整套方案和高性能產(chǎn)品,技術(shù)培訓(xùn)部提供優(yōu)秀的單片機(jī)、ARM、嵌入式產(chǎn)品開發(fā)工程師培訓(xùn)。同時為眾多工程師,各大師專院校提供實(shí)驗(yàn)器材及技術(shù)培訓(xùn)課程!

圖書目錄

第1章 Linux基礎(chǔ)知識 1
1.1 Linux歷史介紹 1
1.2 Linux 常用命令 1
1.2.1 文件管理命令 1
1.2.2 磁盤相關(guān)命令(fdisk) 9
1.2.3 文檔編輯命令 10
1.2.4 文件傳輸命令 11
1.2.5 磁盤維護(hù)命令 12
1.2.6 系統(tǒng)設(shè)置命令 12
1.2.7 備份壓縮命令 13
1.3 Linux環(huán)境編程入門 14
1.3.1 GCC介紹 14
1.3.2 GNU Make 基本語法 15
1.3.3 Makefile 通用模塊 20
1.4 Linux內(nèi)核版本 21
1.5 Linux內(nèi)核開發(fā)者社區(qū) 22
1.6 shell 編程入門 22
1.6.1 shell里的流程控制 26
1.6.2 Here Documents 31
1.6.3 shell里的函數(shù) 32
1.6.4 命令行參數(shù) 33
1.6.5 shell腳本示例 33
1.6.6 腳本調(diào)試 34
1.7 vim編輯器 35
1.7.1 模式 35
1.7.2 常用命令 36
1.7.3 配置文件 38
第2章 嵌入式Linux驅(qū)動開發(fā)環(huán)境搭建 40
2.1 引言 40
2.2 交叉編譯器 42
2.2.1 交叉編譯器概念 42
2.2.2 交叉編譯器獲取 42
2.2.3 交叉編譯器安裝 42
2.2.4 交叉編譯器使用 43
2.3 嵌入式開發(fā)串口終端 44
2.3.1 串口終端用途介紹 44
2.3.2 Windows下超級終端介紹 45
2.3.3 Linux下Minicom 串口終端介紹 46
2.4 嵌入式開發(fā)相關(guān)下載工具 50
2.4.1 Windows下TFTP下載軟件 50
2.4.2 Linux下TFTP服務(wù) 50
2.4.3 Linux 下NFS服務(wù)器 51
2.5 啟動加載程序的使用和移植 52
2.5.1 u-boot常用命令 52
2.5.2 u-boot常用環(huán)境變量介紹 53
2.5.3 u-boot移植到mini2440方法 53
2.6 為mini2440編譯內(nèi)核 56
2.7 根文件系統(tǒng)制作 56
2.7.1 根文件系統(tǒng)的作用 56
2.7.2 根文件系統(tǒng)的制作步驟 57
2.8 J-Link仿真器使用 59
2.8.1 J-Link功能簡介 59
2.8.2 J-Link功能配置及使用范例 60
第3章 Linux設(shè)備驅(qū)動簡介 63
3.1 Linux設(shè)備驅(qū)動概述 63
3.2 Linux內(nèi)核結(jié)構(gòu) 63
3.2.1 Linux內(nèi)核空間劃分 63
3.2.2 Linux用戶空間 64
3.2.3 Linux內(nèi)核空間 64
3.2.4 用戶態(tài)和內(nèi)核態(tài) 64
3.2.5 進(jìn)程上下文和中斷上下文 64
3.3 Linux設(shè)備驅(qū)動特點(diǎn) 65
3.3.1 設(shè)備分類 65
3.3.2 設(shè)備號 65
3.3.3 模塊和設(shè)備驅(qū)動關(guān)系 66
3.4 內(nèi)核模塊的主要相關(guān)命令 66
3.5 內(nèi)核驅(qū)動信息打印―printk 67
第4章 Linux內(nèi)核模塊編程 71
4.1 認(rèn)識Linux模塊 71
4.1.1 一個最簡單的Linux內(nèi)核模塊 71
4.1.2 Linux內(nèi)核模塊程序結(jié)構(gòu) 74
4.1.3 helloworld.c模塊Makefile 文件編寫 76
4.1.4 helloworld模塊編譯 76
4.2 模塊編程形式2:多模塊――模塊間有依賴關(guān)系 76
4.2.1 模塊符號導(dǎo)出 76
4.2.2 多模塊C代碼編程示例 77
4.2.3 多模塊Makefile編譯編程示例 78
4.2.4 編譯和測試模塊 78
4.2.5 多模塊編程總結(jié) 79
4.3 模塊編程形式3:模塊傳遞參數(shù) 79
4.3.1 模塊傳遞參數(shù)關(guān)鍵宏定義 79
4.3.2 module_param () 介紹 79
4.3.3 模塊傳遞參數(shù)示例C代碼 81
4.3.4 模塊傳遞參數(shù)示例Makefile 82
4.3.5 編譯和測試模塊傳遞參數(shù)功能 82
4.3.6 模塊傳遞參數(shù)功能總結(jié) 83
4.4 模塊編程形式4:多個C文件編譯為一個模塊 84
4.4.1 多個C文件模塊示例C代碼 84
4.4.2 多個C文件模塊示例Makefile代碼 85
4.4.3 編譯和測試模塊 85
4.4.4 多個C文件模塊編程總結(jié) 86
第5章 字符設(shè)備驅(qū)動開發(fā) 87
5.1 Linux設(shè)備驅(qū)動特點(diǎn) 87
5.1.1 Linux系統(tǒng)3大類設(shè)備特點(diǎn) 87
5.1.2 Linux內(nèi)核框架 88
5.1.3 字符設(shè)備的幾種編程模型 89
5.2 字符設(shè)備相關(guān)重要結(jié)構(gòu) 89
5.2.1 struct file_operaions結(jié)構(gòu) 89
5.2.2 struct inode結(jié)構(gòu) 92
5.2.3 struct file結(jié)構(gòu) 96
5.3 雜項設(shè)備驅(qū)動模板 97
5.3.1 雜項設(shè)備注冊和注銷 98
5.3.2 雜項設(shè)備驅(qū)動測試 99
5.3.3 雜項設(shè)備驅(qū)動模型示例 101
5.4 早期標(biāo)準(zhǔn)字符設(shè)備驅(qū)動模板 105
5.4.1 早期標(biāo)準(zhǔn)字符設(shè)備驅(qū)動注冊和注銷 105
5.4.2 早期標(biāo)準(zhǔn)字符設(shè)備驅(qū)動模型示例 106
5.4.3 早期標(biāo)準(zhǔn)字符設(shè)備驅(qū)動模型測試 109
5.5 Linux 2.6標(biāo)準(zhǔn)字符設(shè)備驅(qū)動模型 112
5.5.1 Linux 2.6標(biāo)準(zhǔn)字符設(shè)備驅(qū)動核心結(jié)構(gòu):struct cdev 112
5.5.2 Linux 2.6標(biāo)準(zhǔn)字符設(shè)備驅(qū)動設(shè)備號 112
5.5.3 Linux 2.6標(biāo)準(zhǔn)字符設(shè)備驅(qū)動相關(guān)API函數(shù) 113
5.5.4 Linux 2.6標(biāo)準(zhǔn)字符設(shè)備驅(qū)動編寫流程 115
5.5.5 Linux 2.6標(biāo)準(zhǔn)字符設(shè)備驅(qū)動模型示例 115
5.5.6 Linux 2.6標(biāo)準(zhǔn)字符設(shè)備驅(qū)動程序測試 120
5.6 字符設(shè)備驅(qū)動模型小結(jié) 122
5.7 早期字符設(shè)備驅(qū)動自動生成設(shè)備節(jié)點(diǎn)文件 123
5.7.1 mdev的介紹及使用方法 123
5.7.2 相關(guān)數(shù)據(jù)結(jié)構(gòu)、函數(shù)介紹 124
5.7.3 自動創(chuàng)建設(shè)備文件范例 126
5.7.4 自動創(chuàng)建設(shè)備文件小結(jié) 133
第6章 字符設(shè)備LED驅(qū)動 135
6.1 LED硬件原理圖 135
6.2 LED點(diǎn)燈原理分析 135
6.3 字符設(shè)備驅(qū)動open接口 136
6.3.1 open接口參數(shù) 136
6.3.2 open 接口函數(shù)框架 136
6.4 release接口函數(shù) 137
6.4.1 release 接口函數(shù)的作用 137
6.4.2 release接口函數(shù)框架 137
6.5 字符設(shè)備驅(qū)動write接口 137
6.5.1 write接口參數(shù)說明 137
6.5.2 與write接口代碼相關(guān)的常用API 138
6.5.3 write 接口函數(shù)框架 138
6.6 字符設(shè)備驅(qū)動read接口 139
6.6.1 read接口參數(shù) 139
6.6.2 與read接口代碼相關(guān)的常用API 139
6.6.3 read 接口函數(shù)框架 139
6.7 llseek接口實(shí)現(xiàn) 140
6.7.1 llseek接口參數(shù) 140
6.7.2 llsek接口函數(shù)框架 140
6.7.3 重寫能與llseek配套的write函數(shù)框架 141
6.7.4 重寫能與llseek配套的read函數(shù)框架 142
6.8 LED驅(qū)動程序示例 143
6.8.1 LED驅(qū)動程序要使用到的核心函數(shù) 143
6.8.2 LED驅(qū)動程序示例 143
6.9 ioctl控制接口 154
6.9.1 用戶空間ioctl系統(tǒng)調(diào)用 154
6.9.2 內(nèi)核空間驅(qū)動ioctl的方法 154
6.9.3 ioctl接口函數(shù)框架示例 156
6.9.4 LED驅(qū)動添加標(biāo)準(zhǔn)ioctl接口控制LED的范例 158
第7章 內(nèi)核同步機(jī)制 172
7.1 引言 172
7.2 原子操作 172
7.2.1 原子操作概念 172
7.2.2 原子操作相關(guān)API 173
7.2.3 簡單原子操作使用例子 176
7.3 信號量 181
7.3.1 信號量概念 181
7.3.2 信號量相關(guān)API 181
7.3.3 簡單信號量使用例子 183
7.4 讀寫信號量(rw_semaphore) 188
7.4.1 讀寫信號量概念 188
7.4.2 讀寫信號量相關(guān)API 189
7.5 自旋鎖 191
7.5.1 自旋鎖概念 192
7.5.2 自旋鎖相關(guān)API 192
7.5.3 自旋鎖使用方法小結(jié) 197
第8章 LED驅(qū)動完善―添加同步機(jī)制代碼 199
8.1 信號量實(shí)現(xiàn)LED設(shè)備獨(dú)占 199
8.1.1 添加互斥量代碼實(shí)現(xiàn)獨(dú)占功能示例 199
8.1.2 應(yīng)用程序測試信號量獨(dú)占功能 205
8.2 原子操作實(shí)現(xiàn)LED設(shè)備獨(dú)占 206
8.2.1 原子操作代碼實(shí)現(xiàn)獨(dú)占功能示例 206
8.2.2 測試應(yīng)用程序:原子操作獨(dú)占功能 213
8.3 自旋鎖實(shí)現(xiàn)LED設(shè)備并發(fā)控制 214
8.3.1 SMP并發(fā)分析 214
8.3.2 自旋鎖代碼實(shí)現(xiàn)設(shè)備并發(fā)控制功能示例 215
8.3.3 應(yīng)用程序測試自旋鎖并發(fā)控制功能 221
8.4 等待隊列 222
8.4.1 為什么要使用等待隊列 222
8.4.2 等待隊列頭數(shù)據(jù)結(jié)構(gòu) 222
8.4.3 等待隊列的睡眠過程 222
8.4.4 等待隊列的喚醒過程 225
8.4.5 等待隊列API 227
8.5 各種同步機(jī)制的比較 231
第9章 Linux中斷驅(qū)動程序 232
9.1 什么是中斷 232
9.2 Linux 2.6 中斷處理原理 232
9.3 Linux中斷處理程序架構(gòu) 235
9.3.1 底半部實(shí)現(xiàn)方法之一:tasklet 235
9.3.2 底半部實(shí)現(xiàn)方法之二:工作隊列 239
9.4 Linux 2.6 中斷API 244
9.4.1 注冊中斷 244
9.4.2 注銷中斷 245
9.4.3 禁止中斷 246
9.4.4 使能中斷 246
9.4.5 共享中斷 247
9.5 按鍵設(shè)備驅(qū)動程序 247
9.5.1 開發(fā)板按鍵硬件原理圖 247
9.5.2 軟件設(shè)計程序分析 247
9.5.3 按鍵驅(qū)動程序代碼示例 248
9.5.4 按鍵驅(qū)動應(yīng)用程序測試結(jié)果 258
9.6 非阻塞I/O和阻塞I/O 261
9.6.1 概念 261
9.6.2 如何在設(shè)備驅(qū)動實(shí)現(xiàn)阻塞功能 261
9.6.3 驅(qū)動阻塞和非阻塞模板 262
9.7 按鍵驅(qū)動程序完善:新增加poll接口 263
9.7.1 鍵驅(qū)動程序poll接口示例代碼清單 263
9.7.2 poll接口應(yīng)用程序編寫 273
9.7.3 測試結(jié)果及分析 276
第10章 內(nèi)核工作隊列 281
10.1 內(nèi)核工作隊列概述 281
10.2 Linux workqueue工作原理 281
10.2.1 數(shù)據(jù)結(jié)構(gòu)work_struct 282
10.2.2 數(shù)據(jù)結(jié)構(gòu)workqueue_struct 282
10.2.3 數(shù)據(jù)結(jié)構(gòu)cpu_workqueue_struct 283
10.2.4 workqueue原理分析 283
10.3 Linux內(nèi)核共享工作隊列 284
10.3.1 共享工作隊列介紹 284
10.3.2 內(nèi)核共享工作隊列API 284
10.3.3 內(nèi)核共享工作隊列使用步驟 285
10.3.4 內(nèi)核共享工作隊列示例 286
10.3.5 內(nèi)核共享工作隊列測試及結(jié)果分析 287
10.4 自定義內(nèi)核工作隊列 288
10.4.1 創(chuàng)建工作隊列 288
10.4.2 調(diào)度工作隊列 288
10.4.3 銷毀工作隊列 289
10.4.4 自定義工作隊列示例 289
10.4.5 自定義工作隊列測試及結(jié)果分析 292
10.5 延時工作隊列 292
10.5.1 延時工作隊列介紹 292
10.5.2 延時工作隊列數(shù)據(jù)結(jié)構(gòu)和核心API 293
10.5.3 延時工作隊列示例 294
10.5.4 延時工作隊列測試及結(jié)果分析 296
10.6 內(nèi)核微線程tasklet 296
10.6.1 內(nèi)核微線程簡介 296
10.6.2 tasklet的創(chuàng)建及enable/disable函數(shù) 297
10.6.3 tasklet調(diào)度函數(shù) 298
10.6.4 微線程kill函數(shù) 299
10.6.5 tasklet微線程的編程步驟 300
10.6.6 tasklet的簡單示例 301
10.6.7 微線程的簡單示例測試及結(jié)果分析 302
10.7 按鍵設(shè)備驅(qū)動程序改進(jìn)――使用延時工作隊列實(shí)現(xiàn)消抖 303
10.7.1 按鍵抖動機(jī)械特性分析 303
10.7.2 軟件設(shè)備框架分析 304
10.7.3 增加延時工作隊列機(jī)制的按鍵驅(qū)動代碼示例 304
10.7.4 添加延時工作隊列機(jī)制的按鍵驅(qū)動程序測試及結(jié)果分析 315
第11章 內(nèi)核定時器 317
11.1 內(nèi)核定時器概述 317
11.2 相關(guān)數(shù)據(jù)結(jié)構(gòu) 317
11.3 內(nèi)核定時器函數(shù) 318
11.3.1 靜態(tài)定義并初始化定時器API 318
11.3.2 定時器初始化 318
11.3.3 向內(nèi)核添加定時器 319
11.3.4 定時器時間修改 319
11.3.5 定時器取消 320
11.3.6 定時情況查詢 320
11.4 定時器編程步驟 320
11.5 內(nèi)核定時器編程簡單示例 321
11.5.1 內(nèi)核定時器示例代碼 321
11.5.2 內(nèi)核定時示例代碼測試結(jié)果分析 322
11.6 按鍵設(shè)備驅(qū)動程序改進(jìn)―使用內(nèi)核定時器實(shí)現(xiàn)消抖 323
11.6.1 修改按鍵驅(qū)動代碼 323
11.6.2 改進(jìn)版本的按鍵驅(qū)動程序測試及結(jié)果分析 335
第12章 平臺設(shè)備驅(qū)動模型 337
12.1 平臺設(shè)備和驅(qū)動初識 337
12.1.1 總線驅(qū)動模型簡介 337
12.1.2 平臺總線驅(qū)動模型特點(diǎn) 337
12.2 平臺設(shè)備驅(qū)動模型分層 337
12.2.1 platform 設(shè)備層編程 337
12.2.2 設(shè)備層核心數(shù)據(jù)結(jié)構(gòu) 338
12.2.3 platform 設(shè)備層API 339
12.2.4 platform驅(qū)動層編程 340
12.2.5 平臺驅(qū)動層核心數(shù)據(jù)結(jié)構(gòu) 341
12.2.6 platform 驅(qū)動層核心API 342
12.3 基于平臺模型的LED設(shè)備驅(qū)動 343
12.3.1 平臺模型LED驅(qū)動軟件框架分析 343
12.3.2 平臺模型LED驅(qū)動層編程 344
12.3.3 平臺模型設(shè)備層編程 346
12.3.4 平臺模型LED驅(qū)動測試結(jié)果分析 353
第13章 LCD設(shè)備驅(qū)動 355
13.1 FrameBuffer 的原理 355
13.2 FrameBuffer在Linux中的實(shí)現(xiàn)和機(jī)制 355
13.3 內(nèi)核自帶s3c2440 LCD驅(qū)動移植 356
13.3.1 LCD硬件資源分析 356
13.3.2 LCD工作時序參數(shù)分析 357
13.3.3 驅(qū)動探測函數(shù)簡要分析 360
13.3.4 LCD驅(qū)動平臺數(shù)據(jù)結(jié)構(gòu) 360
13.3.5 LCD驅(qū)動平臺資源分析 363
13.3.6 LCD設(shè)備驅(qū)動設(shè)備層編程 364
13.4 LCD設(shè)備驅(qū)動分析 365
13.4.1 LCD設(shè)備驅(qū)動核心結(jié)構(gòu)struct fb_info 366
13.4.2 LCD設(shè)備驅(qū)動可變參數(shù)結(jié)構(gòu)struct fb_var_screeninfo 367
13.4.3 LCD設(shè)備驅(qū)動固定參數(shù)結(jié)構(gòu)struct fb_fix_screeninfo 368
13.4.4 LCD設(shè)備驅(qū)動硬件操作方法結(jié)構(gòu)struct fb_ops 369
13.4.5 LCD設(shè)備驅(qū)動probe函數(shù)分析 371
13.4.6 LCD設(shè)備驅(qū)動remove函數(shù)分析 384
13.4.7 LCD設(shè)備驅(qū)動suspend函數(shù)分析 385
13.4.8 LCD設(shè)備驅(qū)動resume函數(shù)分析 385
13.4.9 LCD硬件操作函數(shù)結(jié)構(gòu)struct fb_ops *fbop分析 386
13.5 LCD應(yīng)用程序編程示例 391
13.5.1 LCD顯示漢字示例代碼 391
13.5.2 LCD顯示BMP圖片示例代碼 399
第14章 Linux下clock子系統(tǒng) 407
14.1 clk時鐘管理概念 407
14.2 核心數(shù)據(jù)結(jié)構(gòu)struct clk 407
14.3 clocks鏈表 408
14.4 clk平臺通用操作 408
14.5 clk與pm(電源管理) 409
14.6 clk時鐘系統(tǒng)實(shí)現(xiàn)原理 409
14.7 clk時鐘系統(tǒng)的應(yīng)用 409
第15章 Linux輸入子系統(tǒng) 413
15.1 輸入子系統(tǒng)概述 413
15.2 輸入子系統(tǒng)的結(jié)構(gòu) 413
15.3 Linux中輸入設(shè)備驅(qū)動的分層 414
15.4 關(guān)鍵結(jié)構(gòu)體 414
15.5 軟件設(shè)計流程 418
15.6 常用相關(guān)API 418
15.7 使用輸入子系統(tǒng)的例子 420
15.8 小結(jié) 424
第16章 Linux觸摸屏驅(qū)動 425
16.1 電阻式觸摸屏工作原理 425
16.2 s3c2440中的觸摸屏接口 425
16.3 mini2440的觸摸屏驅(qū)動 426
16.3.1 初始化 431
16.3.2 中斷處理 433
16.3.3 測試與校準(zhǔn) 434
16.4 觸摸屏驅(qū)動總結(jié) 436
第17章 網(wǎng)絡(luò)設(shè)備驅(qū)動 437
17.1 網(wǎng)絡(luò)設(shè)備概述 437
17.2 DM9000芯片工作原理介紹 438
17.2.1 DM9000功能介紹 438
17.2.2 DM9000結(jié)構(gòu)框圖 438
17.3 DM9000的引腳 438
17.4 DM9000的寄存器 442
17.5 DM9000內(nèi)部寄存器訪問方式 452
17.6 DM9000 編程操作步驟 453
17.7 mini2440 開發(fā)板DM9000硬件連接圖分析 454
17.8 DM9000 Linux驅(qū)動移植 456
17.8.1 DM9000設(shè)備模型分析 456
17.8.2 DM9000探測函數(shù)簡要分析 456
17.8.3 DM9000 平臺的資源分析 457
17.8.4 DM9000平臺的數(shù)據(jù)分析 458
17.8.5 移植DM9000平臺設(shè)備層代碼的編寫 460
17.9 DM9000 Linux驅(qū)動源碼分析 461
17.9.1 數(shù)據(jù)結(jié)構(gòu) struct net_device 461
17.9.2 數(shù)據(jù)結(jié)構(gòu)struct net_device_ops 462
17.9.3 數(shù)據(jù)結(jié)構(gòu) struct sk_buff 463
17.9.4 私有數(shù)據(jù)結(jié)構(gòu) struct board_info 465
17.9.5 DM9000使用到的核心API 466
17.10 DM9000驅(qū)動模塊入口函數(shù)分析 476
17.11 DM9000探測函數(shù)代碼分析 477
17.12 DM9000網(wǎng)卡硬件操作函數(shù)struct net_device_ops重要成員分析 486
17.12.1 網(wǎng)絡(luò)設(shè)備打開函數(shù)ndo_open接口 486
17.12.2 網(wǎng)絡(luò)設(shè)備關(guān)閉函數(shù)ndo_stop接口 490
17.12.3 網(wǎng)絡(luò)設(shè)備發(fā)送函數(shù)ndo_start_xmit接口 491
17.12.4 網(wǎng)絡(luò)設(shè)備超時處理函數(shù)ndo_tx_timeout接口 498
17.13 接收過程詳細(xì)分析 499
17.13.1 DM9000接收中斷代碼分析 499
17.13.2 DM9000讀數(shù)據(jù)包及提交數(shù)據(jù)包到上層函數(shù)分析 500
第18章 Linux I2C子系統(tǒng) 507
18.1 IIC總線知識 507
18.2 IIC子系統(tǒng)體系結(jié)構(gòu) 510
18.3 IIC相關(guān)的重要數(shù)據(jù)結(jié)構(gòu) 510
18.4 IIC核心層 513
18.5 i2c_add_driver分析 515
18.6 IIC設(shè)備驅(qū)動示例 518
18.6.1 設(shè)備驅(qū)動程序 518
18.6.2 應(yīng)用程序編程 522
18.7 IIC總線驅(qū)動分析 524
18.7.1 適配器驅(qū)動 524
18.7.2 適配器平臺資源 531
18.8 IIC子系統(tǒng)總結(jié) 531
第19章 Linux SPI子系統(tǒng) 532
19.1 SPI子系統(tǒng)概述 532
19.2 SPI子系統(tǒng)框圖詳解 532
19.3 SPI相關(guān)的數(shù)據(jù)結(jié)構(gòu) 533
19.4 SPI核心代碼的初始化分析 535
19.5 SPI設(shè)備文件自動產(chǎn)生代碼的分析 536
19.6 SPI子系統(tǒng)核心API 537
19.7 SPI設(shè)備驅(qū)動范例 539
19.7.1 SPI設(shè)備驅(qū)動程序編程 539
19.7.2 SPI應(yīng)用程序編程 544
19.8 SPI總線驅(qū)動分析 546
19.9 SPI子系統(tǒng)總結(jié) 549
第20章 單總線協(xié)議―DS18B20溫度傳感器驅(qū)動 550
20.1 DS18B20介紹 550
20.2 DS18B20的特點(diǎn) 550
20.3 DS18B20的內(nèi)部結(jié)構(gòu) 550
20.4 DS18B20指令碼 553
20.5 DS18B20時序 554
20.5.1 復(fù)位時序 554
20.5.2 寫時序 555
20.5.3 讀時序 555
20.6 DS18B20操作流程 556
20.7 DS18B20與單片機(jī)的典型接口設(shè)計 556
20.8 DS18B20的精確延時問題 557
20.9 基于MS51單片機(jī)的裸機(jī)DS18B20 驅(qū)動程序 557
20.10 Linux 系統(tǒng)下的DS18B20溫度傳感器驅(qū)動 561
20.10.1 內(nèi)核自帶DS18B20溫度傳感器驅(qū)動簡要說明 562
20.10.2 通過內(nèi)核配置菜單配置DS18B20驅(qū)動 562
20.10.3 注冊DS18B20驅(qū)動的設(shè)備層 563
第21章 Linux MTD子系統(tǒng) 567
21.1 Linux MTD子系統(tǒng)介紹 567
21.2 MTD子系統(tǒng)相關(guān)核心結(jié)構(gòu) 569
21.3 Nand Flash硬件操作介紹 572
21.3.1 Nand Flash工作原理 572
21.3.2 Nand Flash 數(shù)據(jù)存儲單元的整體架構(gòu) 573
21.3.3 Nand Flash 引腳(Pin)說明 573
21.3.4 Nand Flash尋址方式 573
21.3.5 Nand Flash讀操作流程 574
21.3.6 Nand Flash 寫操作流程 574
21.3.7 Nand Flash主要內(nèi)設(shè)命令詳細(xì)介紹 575
21.3.8 Nand Flash 控制器中特殊功能寄存器介紹 576
21.4 Nand Flash驅(qū)動實(shí)例 577
21.4.1 Nand Flash驅(qū)動框架編寫 577
21.4.2 Nand Flash底層操作程序 584
21.4.3 Nand Flash分區(qū)的配置 585
21.4.4 Nand Flash驅(qū)動掛接測試 585
21.5 基于MTD 子系統(tǒng)的設(shè)備驅(qū)動編程總結(jié) 586
參考文獻(xiàn) 587

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號