注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術(shù)計算機/網(wǎng)絡(luò)操作系統(tǒng)ARM嵌入式Linux系統(tǒng)開發(fā)詳解(第3版)

ARM嵌入式Linux系統(tǒng)開發(fā)詳解(第3版)

ARM嵌入式Linux系統(tǒng)開發(fā)詳解(第3版)

定 價:¥119.00

作 者: 弓雷
出版社: 清華大學出版社
叢編項:
標 簽: 暫缺

購買這本書可以去


ISBN: 9787302670872 出版時間: 2024-09-01 包裝: 平裝-膠訂
開本: 128開 頁數(shù): 字數(shù):  

內(nèi)容簡介

  "《ARM嵌入式Linux系統(tǒng)開發(fā)詳解(第3版)》是獲得大量讀者好評的“Linux典藏大系”中的《ARM嵌入式Linux系統(tǒng)開發(fā)詳解》的第3版。本書由淺入深,全面、系統(tǒng)地介紹基于ARM體系結(jié)構(gòu)的嵌入式Linux系統(tǒng)開發(fā)涉及的方方面面知識,并給出53個典型實例和5個綜合案例供讀者實戰(zhàn)演練。本書提供707分鐘配套教學視頻、程序源代碼、思維導圖、教學PPT、習題參考答案和軟件工具等超值配套資源,幫助讀者高效、直觀地學習。 本書共25章,分為4篇。第1篇基礎(chǔ)知識,包括嵌入式系統(tǒng)入門、嵌入式軟硬件系統(tǒng)、ARM處理器、嵌入式Linux、軟件開發(fā)環(huán)境搭建、第一個Linux應(yīng)用程序;第2篇應(yīng)用開發(fā),包括Linux應(yīng)用程序開發(fā)基礎(chǔ)、多進程和多線程開發(fā)、網(wǎng)絡(luò)通信應(yīng)用、串口通信編程、嵌入式GUI程序開發(fā)、軟件項目管理;第3篇系統(tǒng)分析,包括ARM體系結(jié)構(gòu)及開發(fā)實例、深入Bootloader、解析Linux內(nèi)核、嵌入式Linux的啟動流程、Linux文件系統(tǒng)、交叉編譯工具、強大的命令系統(tǒng)BusyBox、Linux內(nèi)核移植,以及內(nèi)核和應(yīng)用程序調(diào)試技術(shù);第4篇項目實戰(zhàn),包括Linux設(shè)備驅(qū)動開發(fā)基礎(chǔ)知識、網(wǎng)絡(luò)設(shè)備驅(qū)動程序開發(fā)、Flash設(shè)備驅(qū)動開發(fā)和USB驅(qū)動開發(fā)。 本書內(nèi)容豐富,實用性強,適合ARM嵌入式Linux系統(tǒng)開發(fā)的初學者、從業(yè)者、研究者和愛好者等相關(guān)人員閱讀,也適合IT培訓機構(gòu)和高等院校的相關(guān)專業(yè)作為教材。 "

作者簡介

  弓雷從事嵌入式系統(tǒng)軟件開發(fā)近20年。擅長計算機通信技術(shù),對操作系統(tǒng)內(nèi)核與底層技術(shù)有深入的研究。熟悉Intel IXA架構(gòu)網(wǎng)絡(luò)處理器、ARM體系結(jié)構(gòu)、MIPS體系結(jié)構(gòu)和TCP/IP等網(wǎng)絡(luò)協(xié)議棧。曾經(jīng)移植Linux 2.6內(nèi)核到嵌入式設(shè)備,參與研發(fā)某部隊火控武器通信系統(tǒng)、無人駕駛汽車項目通信系統(tǒng)與10GE/POS骨干網(wǎng)流量管理系統(tǒng)等。目前擔任嵌入式軟件研發(fā)工程師和微碼軟件研發(fā)工程師,從事某公司骨干網(wǎng)P2P流量管理設(shè)備的研發(fā)。

圖書目錄

第1篇  基礎(chǔ)知識
第1章  嵌入式系統(tǒng)入門 2
1.1  什么是嵌入式系統(tǒng) 2
1.2  嵌入式系統(tǒng)的應(yīng)用領(lǐng)域 2
1.2.1  家用電器和電子類產(chǎn)品 2
1.2.2  交通工具 3
1.2.3  公共電子設(shè)施 3
1.3  嵌入式系統(tǒng)的發(fā)展 4
1.3.1  嵌入式微控制器 4
1.3.2  嵌入式微處理器 5
1.3.3  嵌入式系統(tǒng)的發(fā)展方向 5
1.4  典型嵌入式系統(tǒng)的組成 6
1.5  小結(jié) 6
1.6  習題 7
第2章  嵌入式軟硬件系統(tǒng) 8
2.1  電路基礎(chǔ)知識 8
2.1.1  什么是模擬電路 8
2.1.2  什么是數(shù)字電路 8
2.1.3  數(shù)制轉(zhuǎn)換 9
2.2  計算機基礎(chǔ)知識 10
2.2.1  計算機體系結(jié)構(gòu)的發(fā)展 10
2.2.2  中央處理器 10
2.2.3  存儲系統(tǒng) 11
2.2.4  總線系統(tǒng) 11
2.2.5  輸入與輸出系統(tǒng) 12
2.3  軟件基礎(chǔ)知識 12
2.3.1  什么是軟件 12
2.3.2  軟件的開發(fā)流程 13
2.3.3  常見的軟件開發(fā)模型 13
2.3.4  計算機編程語言 14
2.3.5  數(shù)據(jù)結(jié)構(gòu) 15
2.4  操作系統(tǒng)基礎(chǔ)知識 15
2.4.1  什么是操作系統(tǒng) 15
2.4.2  操作系統(tǒng)的發(fā)展歷史 15
2.4.3  操作系統(tǒng)的組成 16
2.4.4  幾種操作系統(tǒng)的設(shè)計思路 16
2.4.5  操作系統(tǒng)的分類 17
2.5  小結(jié) 17
2.6  習題 17
第3章  ARM處理器 19
3.1  微處理器和微控制器 19
3.2  ARM處理器簡介 19
3.2.1  ARM微處理器的應(yīng)用領(lǐng)域 20
3.2.2  ARM處理器的優(yōu)點 20
3.3  ARM指令集 21
3.3.1  算術(shù)運算指令 21
3.3.2  邏輯運算指令 22
3.3.3  分支指令 23
3.3.4  數(shù)據(jù)傳送指令 23
3.4  ARM體系結(jié)構(gòu) 24
3.4.1  ARM體系結(jié)構(gòu)的命名方法 24
3.4.2  處理器的劃分 25
3.4.3  處理器的工作模式 25
3.4.4  存儲系統(tǒng) 26
3.4.5  尋址方式 27
3.5  ARM的功能選型 29
3.5.1  ARM的選型原則 29
3.5.2  幾種常見的ARM核處理器選型參考 31
3.6  小結(jié) 32
3.7  習題 33
第4章  嵌入式Linux 34
4.1  常見的嵌入式操作系統(tǒng) 34
4.1.1  VxWorks簡介 34
4.1.2  Windows CE簡介 35
4.1.3  PalmOS簡介 35
4.1.4  Android簡介 35
4.2  嵌入式Linux操作系統(tǒng) 36
4.2.1  什么是Linux 36
4.2.2  Linux與UNIX的不同——GPL版權(quán)協(xié)議簡介 36
4.2.3  Linux發(fā)行版 37
4.2.4  常見的嵌入式Linux系統(tǒng) 38
4.3  小結(jié) 38
4.4  習題 39
第5章  軟件開發(fā)環(huán)境搭建 40
5.1  安裝Linux系統(tǒng) 40
5.1.1  安裝Ubuntu Linux 40
5.1.2  安裝和卸載軟件 43
5.1.3  配置系統(tǒng)服務(wù) 43
5.1.4  安裝主要的開發(fā)工具 44
5.1.5  安裝其他開發(fā)工具 45
5.2  運行在Windows上的Linux系統(tǒng) 45
5.2.1  什么是Cygwin 45
5.2.2  安裝Cygwin 46
5.2.3  安裝開發(fā)環(huán)境 49
5.3  Linux的常用工具 49
5.3.1  Linux Shell及其常用命令 50
5.3.2  文本編輯工具vi 51
5.3.3  搜索工具find和grep 52
5.3.4  FTP工具 56
5.3.5  串口工具minicom 57
5.4  Windows的常用工具 58
5.4.1  代碼編輯管理工具Source Insight 59
5.4.2  串口工具Xshell 64
5.5  ARM的集成開發(fā)環(huán)境ADS 66
5.5.1  ADS集成開發(fā)環(huán)境簡介 66
5.5.2  配置ADS調(diào)試環(huán)境 67
5.5.3  建立自己的工程 68
5.6  小結(jié) 70
5.7  習題 70
第6章  第一個Linux應(yīng)用程序 71
6.1  向世界問好——Hello,World!  71
6.1.1  用vi編輯源代碼文件 71
6.1.2  用gcc命令編譯程序 72
6.1.3  執(zhí)行程序 72
6.2  程序背后做了什么 73
6.2.1  程序執(zhí)行的過程 73
6.2.2  窺視程序執(zhí)行中的秘密 73
6.2.3  動態(tài)庫的作用 75
6.3  程序如何來的——編譯的全過程 75
6.3.1  編譯源代碼 76
6.3.2  鏈接目標文件到指定的庫 77
6.4  更簡單的辦法——用Makefile管理工程 77
6.4.1  什么是Makefile 77
6.4.2  Makefile是如何工作的 78
6.4.3  如何使用Makefile 78
6.4.4  好的源代碼管理習慣 79
6.5  小結(jié) 79
6.6  習題 79
第2篇  應(yīng)用開發(fā)
第7章  Linux應(yīng)用程序開發(fā)基礎(chǔ) 82
7.1  內(nèi)存管理和使用 82
7.1.1  堆和棧的區(qū)別 82
7.1.2  內(nèi)存管理函數(shù)malloc()和free() 84
7.1.3  實用的內(nèi)存分配函數(shù)calloc()和realloc() 85
7.1.4  內(nèi)存管理編程實例 86
7.2  ANSI C文件管理 89
7.2.1  文件指針和流 89
7.2.2  存儲方式 90
7.2.3  標準輸入、標準輸出和標準錯誤 90
7.2.4  緩沖 90
7.2.5  打開和關(guān)閉文件 91
7.2.6  讀寫文件 92
7.2.7  文件流定位 94
7.2.8  ANSI C文件編程實例 95
7.3  POSIX文件I/O編程 96
7.3.1  底層的文件I/O操作 96
7.3.2  文件描述符 96
7.3.3  創(chuàng)建、打開和關(guān)閉文件 97
7.3.4  讀寫文件內(nèi)容 100
7.3.5  文件內(nèi)容定位 101
7.3.6  修改已打開文件的屬性 102
7.3.7  POSIX文件編程實例 102
7.4  小結(jié) 103
7.5  習題 104
第8章  多進程和多線程開發(fā) 105
8.1  多進程開發(fā) 105
8.1.1  什么是進程 105
8.1.2  進程環(huán)境和屬性 106
8.1.3  創(chuàng)建進程 107
8.1.4  等待進程結(jié)束 109
8.1.5  退出進程 110
8.1.6  常用進程間的通信方法 112
8.1.7  進程編程實例 116
8.2  多線程開發(fā) 117
8.2.1  線程的概念 117
8.2.2  進程和線程對比 117
8.2.3  創(chuàng)建線程 118
8.2.4  取消線程 119
8.2.5  等待線程 120
8.2.6  使用pthread庫實現(xiàn)多線程操作實例 121
8.3  小結(jié) 122
8.4  習題 122
第9章  網(wǎng)絡(luò)通信應(yīng)用 124
9.1  網(wǎng)絡(luò)通信基礎(chǔ) 124
9.1.1  TCP/IP簇 124
9.1.2  IP簡介 125
9.1.3  TCP簡介 126
9.1.4  UDP簡介 127
9.1.5  網(wǎng)絡(luò)協(xié)議分析工具Wireshark 127
9.2  Socket通信的基本概念 128
9.2.1  創(chuàng)建Socket對象 128
9.2.2  面向連接的Socket通信 129
9.2.3  面向連接的echo服務(wù)編程實例 131
9.2.4  無連接的Socket通信 135
9.2.5  無連接的時間服務(wù)編程實例 136
9.3  Socket高級應(yīng)用 139
9.3.1  Socket超時處理 139
9.3.2  使用Select機制處理多連接 140
9.3.3  使用poll機制處理多連接 141
9.3.4  多線程環(huán)境Socket編程 143
9.4  小結(jié) 143
9.5  習題 144
第10章  串口通信編程 145
10.1  串口簡介 145
10.1.1  什么是串口 145
10.1.2  串口的工作原理 145
10.1.3  串口的流量控制 146
10.2  開發(fā)串口應(yīng)用程序 147
10.2.1  操作串口需要用到的頭文件 147
10.2.2  串口操作方法 148
10.2.3  串口屬性設(shè)置 148
10.2.4  與Windows串口終端通信 152
10.3  串口應(yīng)用案例——發(fā)送手機短信 154
10.3.1  PC與手機連接發(fā)送短信的物理結(jié)構(gòu) 154
10.3.2  AT指令簡介 155
10.3.3  GSM AT指令集 155
10.3.4  PDU編碼方式 156
10.3.5  建立與手機的連接 157
10.3.6  使用AT指令發(fā)送短信 158
10.4  小結(jié) 161
10.5  習題 161
第11章  嵌入式GUI程序開發(fā) 163
11.1  Linux GUI簡介 163
11.1.1  Linux GUI的發(fā)展 163
11.1.2  常見的嵌入式GUI 164
11.2  開發(fā)圖形界面程序 165
11.2.1  安裝Qt開發(fā)環(huán)境 165
11.2.2  建立簡單的Qt程序 167
11.2.3  Qt庫編程結(jié)構(gòu) 170
11.3  深入Qt編程 170
11.3.1  使用Widget 170
11.3.2  對話框程序設(shè)計 172
11.3.3  信號與槽系統(tǒng) 176
11.4  將Qt移植到ARM開發(fā)板上 177
11.4.1  tslib的移植 177
11.4.2  Qt的移植 178
11.4.3  安裝Qt Creator編譯環(huán)境 179
11.4.4  設(shè)置Qt Creator編譯環(huán)境 184
11.4.5  配置開發(fā)板的環(huán)境變量 187
11.5  模擬器QEMU 188
11.5.1  使用QEMU搭建ARM嵌入式Linux開發(fā)環(huán)境 188
11.5.2  使用Qt程序進行測試 191
11.6  小結(jié) 191
11.7  習題 191
第12章  軟件項目管理 193
12.1  源代碼管理 193
12.1.1  軟件的版本 193
12.1.2  版本控制的概念 194
12.2  版本控制系統(tǒng)Git 195
12.2.1  在Linux系統(tǒng)中使用Git 195
12.2.2  在Windows系統(tǒng)中使用Git 198
12.3  常見的開發(fā)文檔 202
12.3.1  可行性研究報告 202
12.3.2  項目開發(fā)計劃 202
12.3.3  軟件需求說明書 202
12.3.4  概要設(shè)計 203
12.3.5  詳細設(shè)計 203
12.3.6  用戶手冊 203
12.3.7  其他文檔 203
12.4  文檔維護工具 203
12.4.1  Sphinx工具 203
12.4.2  GitHub工具 206
12.5  Bug跟蹤系統(tǒng) 210
12.5.1  Bug管理的概念和作用 210
12.5.2  使用Bugzilla跟蹤Bug 211
12.6  小結(jié) 214
12.7  習題 214
第3篇  系統(tǒng)分析
第13章  ARM體系結(jié)構(gòu)及開發(fā)實例 216
13.1  ARM體系結(jié)構(gòu) 216
13.1.1  ARM體系結(jié)構(gòu)簡介 216
13.1.2  ARM指令集簡介 217
13.2  編程模型 218
13.2.1  數(shù)據(jù)類型 218
13.2.2  處理器模式 218
13.2.3  寄存器 219
13.2.4  通用寄存器 219
13.2.5  程序狀態(tài)寄存器 221
13.2.6  異常處理 221
13.2.7  內(nèi)存及其I/O映射 222
13.3  內(nèi)存管理單元 223
13.3.1  內(nèi)存管理簡介 223
13.3.2  內(nèi)存訪問順序 224
13.3.3  地址翻譯過程 224
13.3.4  內(nèi)存訪問權(quán)限 225
13.4  常見的接口和控制器 225
13.4.1  GPIO簡介 225
13.4.2  中斷控制器 226
13.4.3  RTC控制器 226
13.4.4  看門狗定時器 227
13.4.5  使用GPIO點亮LED實例 227
13.5  小結(jié) 228
13.6  習題 228
第14章  深入Bootloader 230
14.1  初識Bootloader 230
14.1.1  PC的Bootloader 230
14.1.2  什么是嵌入式系統(tǒng)的Bootloader 231
14.1.3  嵌入式系統(tǒng)常見的Bootloader 231
14.2  U-Boot分析 232
14.2.1  獲取U-Boot 232
14.2.2  U-Boot工程結(jié)構(gòu)分析 232
14.2.3  U-Boot的工作流程 233
14.3  U-Boot的啟動流程分析 234
14.3.1  _start標號 234
14.3.2  reset標號 237
14.3.3  cpu_init_crit標號 238
14.3.4  lowlevel_init標號 239
14.3.5  main標號 240
14.3.6  board_init_f()函數(shù) 243
14.3.7  relocate_code()函數(shù) 243
14.3.8  board_init_r()函數(shù) 245
14.3.9  main_loop()函數(shù) 245
14.4  U-Boot移植 246
14.4.1  U-Boot移植的一般步驟 246
14.4.2  將U-Boot移植到目標開發(fā)板上 247
14.4.3  U-Boot移植的常見問題 249
14.5  小結(jié) 249
14.6  習題 249
第15章  解析Linux內(nèi)核 251
15.1  基礎(chǔ)知識 251
15.1.1  什么是Linux內(nèi)核 251
15.1.2  Linux內(nèi)核的版本 252
15.1.3  如何獲取Linux內(nèi)核代碼 252
15.1.4  編譯內(nèi)核 252
15.2  Linux內(nèi)核的子系統(tǒng) 258
15.2.1  系統(tǒng)調(diào)用接口 259
15.2.2  進程管理子系統(tǒng) 260
15.2.3  內(nèi)存管理子系統(tǒng) 261
15.2.4  虛擬文件系統(tǒng) 261
15.2.5  網(wǎng)絡(luò)堆棧 262
15.2.6  設(shè)備驅(qū)動 263
15.2.7  內(nèi)核體系結(jié)構(gòu)代碼分離設(shè)計解析 264
15.3  Linux內(nèi)核代碼的工程結(jié)構(gòu) 264
15.3.1  源代碼目錄布局 264
15.3.2  幾個重要的Linux內(nèi)核文件 266
15.4  內(nèi)核編譯系統(tǒng) 267
15.4.1  內(nèi)核編譯系統(tǒng)的基本架構(gòu) 267
15.4.2  內(nèi)核的頂層Makefile文件分析 268
15.4.3  內(nèi)核編譯文件分析 270
15.4.4  目標文件清除機制 273
15.4.5  編譯輔助程序 273
15.4.6  Kbuild變量 274
15.5  小結(jié) 275
15.6  習題 275
第16章  嵌入式Linux的啟動流程 277
16.1  Linux內(nèi)核的初始化流程 277
16.2  PC的初始化流程 278
16.2.1  PC BIOS的功能和作用 279
16.2.2  磁盤的數(shù)據(jù)結(jié)構(gòu) 279
16.2.3  PC的完整初始化流程 280
16.3  嵌入式系統(tǒng)的初始化 280
16.4  Linux內(nèi)核的初始化 282
16.4.1  解壓縮內(nèi)核映像 282
16.4.2  進入內(nèi)核代碼 284
16.5  啟動init內(nèi)核進程 287
16.6  根文件系統(tǒng)的初始化 288
16.6.1  根文件系統(tǒng)簡介 288
16.6.2  掛載虛擬文件系統(tǒng) 290
16.7  內(nèi)核交出權(quán)限 295
16.8  systemd進程 295
16.8.1  systemd的Unit 295
16.8.2  配置文件 295
16.8.3  常用命令 297
16.9  初始化RAM Disk 298
16.9.1  RAM Disk簡介 298
16.9.2  如何使用RAM Disk 299
16.9.3  使用RAM Disk作為根文件系統(tǒng)實例 299
16.10  小結(jié) 300
16.11  習題 301
第17章  Linux文件系統(tǒng) 302
17.1  Linux文件管理 302
17.1.1  文件和目錄的概念 302
17.1.2  文件的結(jié)構(gòu) 303
17.1.3  文件的類型 303
17.1.4  文件系統(tǒng)的目錄結(jié)構(gòu) 305
17.1.5  文件和目錄的存取權(quán)限 307
17.1.6  文件系統(tǒng)管理 308
17.2  Linux文件系統(tǒng)的原理 309
17.2.1  非日志文件系統(tǒng) 309
17.2.2  日志文件系統(tǒng) 310
17.3  常見的Linux文件系統(tǒng) 311
17.3.1  Ext2文件系統(tǒng) 311
17.3.2  Ext3文件系統(tǒng) 313
17.3.3  ReiserFS文件系統(tǒng) 314
17.3.4  JFFS文件系統(tǒng) 315
17.3.5  CRAMFS文件系統(tǒng) 317
17.4  其他文件系統(tǒng) 317
17.4.1  網(wǎng)絡(luò)文件系統(tǒng) 317
17.4.2  /proc影子文件系統(tǒng) 319
17.5  小結(jié) 321
17.6  習題 322
第18章  交叉編譯工具 323
18.1  什么是交叉編譯 323
18.2  交叉編譯產(chǎn)生的原因 324
18.3  安裝交叉編譯工具的條件 324
18.4  如何安裝交叉編譯工具 324
18.4.1  手動安裝 324
18.4.2  使用apt工具安裝 326
18.4.3  測試 326
18.5  小結(jié) 326
18.6  習題 327
第19章  強大的命令系統(tǒng)BusyBox 328
19.1  BusyBox簡介 328
19.1.1  簡單易懂的BusyBox 328
19.1.2  BusyBox的工作原理 329
19.1.3  安裝BusyBox 330
19.2  交叉編譯BusyBox 333
19.3  在目標板上安裝BusyBox 335
19.4  小結(jié) 337
19.5  習題 337
第20章  Linux內(nèi)核移植 338
20.1  Linux內(nèi)核移植的要點 338
20.2  Linux內(nèi)核的平臺代碼結(jié)構(gòu) 339
20.3  實現(xiàn)交叉編譯 340
20.3.1  加入編譯菜單項 342
20.3.2  實現(xiàn)編譯 343
20.4  小結(jié) 344
20.5  習題 344
第21章  內(nèi)核和應(yīng)用程序調(diào)試技術(shù) 345
21.1  使用gdb調(diào)試應(yīng)用程序 345
21.2  基本的調(diào)試技術(shù) 345
21.2.1  列出源代碼 348
21.2.2  斷點管理 350
21.2.3  執(zhí)行程序 352
21.2.4  顯示程序變量 352
21.2.5  信號管理 353
21.2.6  調(diào)試實例 354
21.3  多進程調(diào)試 354
21.4  調(diào)試意外終止的程序 357
21.5  內(nèi)核調(diào)試方法 359
21.5.1  printk打印調(diào)試信息 359
21.5.2  動態(tài)輸出 360
21.5.3  BUG_ON()和WARN_ON()宏 360
21.5.4  使用/proc虛擬文件系統(tǒng) 363
21.6  小結(jié) 364
21.7  習題 364
第4篇  項目實戰(zhàn)
第22章  Linux設(shè)備驅(qū)動開發(fā)基礎(chǔ)知識 366
22.1  設(shè)備驅(qū)動簡介 366
22.2  Linux內(nèi)核模塊簡介 367
22.2.1  內(nèi)核模塊速覽 367
22.2.2  內(nèi)核模塊的結(jié)構(gòu) 367
22.2.3  內(nèi)核模塊的加載和卸載 368
22.2.4  編寫一個基本的內(nèi)核模塊 369
22.2.5  編譯內(nèi)核模塊 370
22.2.6  為內(nèi)核模塊添加參數(shù) 371
22.3  Linux設(shè)備驅(qū)動工作方式簡介 372
22.3.1  PCI局部總線簡介 372
22.3.2  Linux設(shè)備驅(qū)動的基本概念 373
22.3.3  字符設(shè)備 374
22.3.4  塊設(shè)備 376
22.3.5  網(wǎng)絡(luò)設(shè)備 377
22.4  字符設(shè)備驅(qū)動開發(fā)案例 377
22.4.1  開發(fā)一個基本的字符設(shè)備驅(qū)動 377
24.4.2  測試字符設(shè)備 380
22.5  小結(jié) 381
22.6  習題 381
第23章  網(wǎng)絡(luò)設(shè)備驅(qū)動程序開發(fā) 382
23.1  網(wǎng)絡(luò)基礎(chǔ)知識 382
23.1.1  OSI網(wǎng)絡(luò)參考模型 382
23.1.2  Linux系統(tǒng)內(nèi)核與TCP/IP 383
23.2  以太網(wǎng)基礎(chǔ) 385
23.2.1  工作原理 386
23.2.2  常見的以太網(wǎng)標準 386
23.2.3  拓撲結(jié)構(gòu) 387
23.2.4  工作模式 387
23.3  網(wǎng)卡的工作原理 388
23.4  內(nèi)核網(wǎng)絡(luò)分層結(jié)構(gòu) 389
23.4.1  內(nèi)核網(wǎng)絡(luò)結(jié)構(gòu) 389
23.4.2  與網(wǎng)絡(luò)有關(guān)的數(shù)據(jù)結(jié)構(gòu) 390
23.4.3  內(nèi)核網(wǎng)絡(luò)部分的全局變量 391
23.5  內(nèi)核網(wǎng)絡(luò)設(shè)備驅(qū)動框架 392
23.5.1  net_device結(jié)構(gòu) 392
23.5.2  數(shù)據(jù)包的接收流程 394
23.5.3  數(shù)據(jù)包的發(fā)送流程 395
23.6  DM9000網(wǎng)卡驅(qū)動分析案例 396
23.6.1  DM9000芯片簡介 396
23.6.2  網(wǎng)卡驅(qū)動程序框架 396
23.6.3  DM9000網(wǎng)卡驅(qū)動的數(shù)據(jù)結(jié)構(gòu) 397
23.6.4  加載驅(qū)動程序 398
23.6.5  停止和啟動網(wǎng)卡 402
23.6.6  發(fā)送數(shù)據(jù)包 403
23.6.7  接收數(shù)據(jù)包 404
23.6.8  中斷的處理 405
23.7  小結(jié) 406
23.8  習題 406
第24章  Flash設(shè)備驅(qū)動開發(fā) 407
24.1  Linux Flash驅(qū)動結(jié)構(gòu) 407
24.1.1  什么是MTD 407
24.1.2  MTD系統(tǒng)結(jié)構(gòu) 408
24.2  Flash設(shè)備基礎(chǔ) 409
24.2.1  存儲原理 409
24.2.2  性能比較 410
24.3  內(nèi)核MTD層 411
24.3.1  mtd_info結(jié)構(gòu) 411
24.3.2  mtd_part結(jié)構(gòu) 415
24.3.3  mtd_partition結(jié)構(gòu) 415
24.3.4  map_info結(jié)構(gòu) 416
24.3.5  nand_chip結(jié)構(gòu) 418
24.4  Flash設(shè)備框架 419
24.4.1  NOR Flash設(shè)備驅(qū)動框架 419
24.4.2  NAND Flash設(shè)備驅(qū)動框架 420
24.5  NAND Flash設(shè)備驅(qū)動分析案例 421
24.5.1  S3C2440 NAND控制器簡介 421
24.5.2  數(shù)據(jù)結(jié)構(gòu) 423
24.5.3  注冊驅(qū)動 424
24.5.4  驅(qū)動卸載 427
24.5.5  初始化NAND控制器 427
24.5.6  設(shè)置芯片操作 429
24.5.7  電源管理 431
24.6  小結(jié) 432
24.7  習題 432
第25章  USB驅(qū)動開發(fā) 433
25.1  USB體系概述 433
25.1.1  USB的設(shè)計目標 433
25.1.2  USB體系簡介 434
25.1.3  USB體系的工作流程 435
25.2  USB驅(qū)動程序框架 435
25.2.1  Linux內(nèi)核USB驅(qū)動框架簡介 435
25.2.2  主機驅(qū)動結(jié)構(gòu) 438
25.2.3  設(shè)備驅(qū)動結(jié)構(gòu) 442
25.2.4  USB驅(qū)動程序框架 445
25.3  USB驅(qū)動案例剖析 447
25.3.1  USB串口驅(qū)動 447
25.3.2  USB鍵盤驅(qū)動 449
25.4  小結(jié) 452
25.5  習題 452

本目錄推薦

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