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

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

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

定 價:¥59.00

作 者: 弓雷 等編著
出版社: 清華大學(xué)出版社
叢編項(xiàng): Linux典藏大系
標(biāo) 簽: LINUX

ISBN: 9787302207290 出版時間: 2010-01-01 包裝: 平裝
開本: 16開 頁數(shù): 478 字?jǐn)?shù):  

內(nèi)容簡介

  嵌入式系統(tǒng)是目前最流行的計(jì)算機(jī)應(yīng)用技術(shù)之一?!禔RM嵌入式Linux系統(tǒng)開發(fā)詳解》由淺入深地講解基于ARM體系結(jié)構(gòu)的嵌入式Linux系統(tǒng)開發(fā),內(nèi)容包括嵌入式系統(tǒng)的基本概念、應(yīng)用領(lǐng)域等基礎(chǔ)知識;ARM處理器的體系結(jié)構(gòu)和功能特點(diǎn);Linux系統(tǒng)內(nèi)核結(jié)構(gòu)和移植方法、Bootloader功能和移植;Linux應(yīng)用程序開發(fā),包括如何操作文件、管理內(nèi)存、訪問串口、多線程和多進(jìn)程技術(shù),并且剖析了應(yīng)用程序的結(jié)構(gòu)和工作流程;Linux系統(tǒng)設(shè)備驅(qū)動程序開發(fā),包括如何編寫內(nèi)核模塊、驅(qū)動程序分類和功能特點(diǎn),并且給出了網(wǎng)絡(luò)設(shè)備驅(qū)動、Flash設(shè)備驅(qū)動和USB設(shè)備驅(qū)動的實(shí)例分析?!禔RM嵌入式Linux系統(tǒng)開發(fā)詳解》附帶1張DVD光盤,內(nèi)容為專門為《ARM嵌入式Linux系統(tǒng)開發(fā)詳解》錄制的9小時視頻、《ARM嵌入式Linux系統(tǒng)開發(fā)詳解》涉及的源代碼、Ubuntu安裝光盤的鏡像文件和另外贈送的35小時Linux專題學(xué)習(xí)視頻。《ARM嵌入式Linux系統(tǒng)開發(fā)詳解》適合廣大從事嵌入式Linux系統(tǒng)開發(fā)人員、對嵌入式Linux系統(tǒng)開發(fā)有興趣的計(jì)算機(jī)愛好者,以及大中專院校學(xué)生閱讀。

作者簡介

  弓雷 在電信行業(yè)從事嵌入式系統(tǒng)軟件開發(fā)5年。致力于計(jì)算機(jī)操作系統(tǒng)內(nèi)核及底層技術(shù)的研究。技術(shù)涉獵廣泛,擅長計(jì)算機(jī)通信技術(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è)備。曾經(jīng)參與研發(fā)某部隊(duì)火控武器通信系統(tǒng)、無人駕駛汽車項(xiàng)目通信系統(tǒng)及10GE/POS骨干網(wǎng)流量管理系統(tǒng)。目前擔(dān)任嵌入式軟件研發(fā)工程師和微碼軟件研發(fā)工程師,從事某公司骨干網(wǎng)P2P流量管理設(shè)備的研發(fā)。

圖書目錄

第1篇 Linux嵌入式開發(fā)基礎(chǔ)篇.
第1章 嵌入式系統(tǒng)入門 2
1.1 什么是嵌入式系統(tǒng) 2
1.2 嵌入式系統(tǒng)應(yīng)用領(lǐng)域 2
1.2.1 家用電器 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ā)展的方向 6
1.4 典型的嵌入式系統(tǒng)組成 6
1.5 小結(jié) 7
第2章 嵌入式軟硬件系統(tǒng) 8
2.1 電路基本知識 8
2.1.1 什么是模擬電路 8
2.1.2 什么是數(shù)字電路 8
2.1.3 數(shù)制轉(zhuǎn)換 9
2.2 計(jì)算機(jī)組成原理 10
2.2.1 計(jì)算機(jī)體系的發(fā)展 10
2.2.2 中央處理器 10
2.2.3 存儲系統(tǒng) 11
2.2.4 總線系統(tǒng) 12
2.2.5 輸入輸出系統(tǒng) 12
2.3 軟件基礎(chǔ)知識 12
2.3.1 什么是軟件 13
2.3.2 軟件開發(fā)流程 13
2.3.3 常見的軟件開發(fā)模型 14
2.3.4 計(jì)算機(jī)編程語言 14
2.3.5 數(shù)據(jù)結(jié)構(gòu) 15
2.4 操作系統(tǒng)知識 15
2.4.1 什么是操作系統(tǒng) 16
2.4.2 操作系統(tǒng)的發(fā)展歷史 16
2.4.3 操作系統(tǒng)由什么組成 16
2.4.4 幾種操作系統(tǒng)的設(shè)計(jì)思路 17
2.4.5 操作系統(tǒng)分類 17
2.5 小結(jié) 18
第3章 ARM處理器 19
3.1 微處理器和微控制器 19
3.2 ARM處理器介紹 19
3.2.1 ARM微處理器的應(yīng)用領(lǐng)域 20
3.2.2 ARM的功能特點(diǎn) 20
3.3 ARM指令集 21
3.3.1 算術(shù)運(yùn)算指令 21
3.3.2 邏輯運(yùn)算指令 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核處理器選型參考 32
3.6 小結(jié) 32
第4章 嵌入式Linux 33
4.1 常見的嵌入式操作系統(tǒng) 33
4.1.1 VxWorks 33
4.1.2 Windows CE 34
4.1.3 PalmOS 34
4.1.4 Symbian 34
4.2 嵌入式Linux操作系統(tǒng) 34
4.2.1 什么是Linux 35
4.2.2 Linux與UNIX的不同——GPL版權(quán)協(xié)議介紹 35
4.2.3 Linux發(fā)行版 36
4.2.4 常見的嵌入式Linux系統(tǒng) 37
4.3 小結(jié) 37
第5章 建立軟件開發(fā)環(huán)境 38
5.1 獨(dú)立的Linux系統(tǒng) 38
5.1.1 安裝Ubuntu Linux 38
5.1.2 關(guān)鍵一步——系統(tǒng)的網(wǎng)絡(luò)設(shè)置 46
5.1.3 其他必要的設(shè)置 46
5.1.4 怎樣安裝卸載軟件 48
5.1.5 怎樣配置系統(tǒng)服務(wù) 48
5.1.6 安裝主要的開發(fā)工具 48
5.1.7 安裝其他的開發(fā)工具和文檔 49
5.2 運(yùn)行在Windows上的Linux系統(tǒng) 50
5.2.1 什么是Cygwin 50
5.2.2 如何安裝Cygwin 50
5.2.3 安裝開發(fā)環(huán)境 54
5.3 Linux常用工具 54
5.3.1 Linux shell和常用命令 55
5.3.2 文本編輯工具vi 56
5.3.3 搜索工具find和grep 57
5.3.4 FTP工具 61
5.3.5 串口工具minicom 63
5.4 Windows常用工具 65
5.4.1 代碼編輯管理工具Source Insight 65
5.4.2 串口工具XShell 71
5.5 ARM集成開發(fā)環(huán)境ADS 72
5.5.1 ADS集成開發(fā)環(huán)境介紹 73
5.5.2 配置ADS調(diào)試環(huán)境 73
5.5.3 建立自己的工程 75
5.6 小結(jié) 78
第6章 第一個Linux應(yīng)用程序 79
6.1 向世界問好——Hello,World! 79
6.1.1 用vi編輯源代碼文件 79
6.1.2 用gcc編譯程序 80
6.1.3 執(zhí)行程序 80
6.2 程序背后做了什么 80
6.2.1 程序執(zhí)行的過程 81
6.2.2 窺視程序執(zhí)行中的秘密 82
6.2.3 動態(tài)庫的作用 83
6.3 程序如何來的——編譯的全部過程 84
6.3.1 編譯源代碼 84
6.3.2 連接目標(biāo)文件到指定的庫 85
6.4 更簡單的辦法——用Makefile管理工程 86
6.4.1 什么是Makefile 87
6.4.2 它是如何工作的 87
6.4.3 如何使用Makefile 87
6.4.4 好的源代碼管理習(xí)慣 88
6.5 小結(jié) 88
第2篇 Linux嵌入式開發(fā)應(yīng)用篇
第7章 Linux應(yīng)用程序編程基礎(chǔ) 90
7.1 內(nèi)存管理和使用 90
7.1.1 堆和棧的區(qū)別 90
7.1.2 內(nèi)存管理函數(shù)malloc()和free() 93
7.1.3 實(shí)用的內(nèi)存分配函數(shù)calloc()和realloc() 93
7.1.4 內(nèi)存管理編程實(shí)例 94
7.2 ANSI C文件管理 97
7.2.1 文件指針和流 97
7.2.2 存儲方式 98
7.2.3 標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯誤 98
7.2.4 緩沖 98
7.2.5 打開關(guān)閉文件 99
7.2.6 讀寫文件 100
7.2.7 文件流定位 103
7.2.8 ANSI C文件編程實(shí)例 103
7.3 POSIX文件I/O編程 104
7.3.1 底層的文件I/O操作 104
7.3.2 文件描述符 104
7.3.3 創(chuàng)建/打開/關(guān)閉文件 105
7.3.4 讀寫文件內(nèi)容 108
7.3.5 文件內(nèi)容定位 109
7.3.6 修改已打開文件的屬性 110
7.3.7 POSIX文件編程實(shí)例 110
7.4 小結(jié) 112
第8章 開發(fā)多進(jìn)程/線程程序 113
8.1 多進(jìn)程開發(fā) 113
8.1.1 什么是進(jìn)程 113
8.1.2 進(jìn)程環(huán)境和屬性 114
8.1.3 創(chuàng)建進(jìn)程 115
8.1.4 等待進(jìn)程結(jié)束 117
8.1.5 退出進(jìn)程 118
8.1.6 常用進(jìn)程間通信的方法 120
8.1.7 進(jìn)程編程實(shí)例 124
8.2 多線程開發(fā) 125
8.2.1 線程的概念 126
8.2.2 進(jìn)程和線程對比 126
8.2.3 創(chuàng)建線程 127
8.2.4 取消線程 128
8.2.5 等待線程 129
8.2.6 使用pthread庫線程操作實(shí)例 129
8.3 小結(jié) 131
第9章 網(wǎng)絡(luò)通信應(yīng)用 132
9.1 網(wǎng)絡(luò)通信基礎(chǔ) 132
9.1.1 TCP/IP協(xié)議族 132
9.1.2 IP協(xié)議 133
9.1.3 TCP協(xié)議 135
9.1.4 UDP協(xié)議 135
9.1.5 學(xué)習(xí)分析協(xié)議的方法 135
9.2 Socket通信基本概念 137
9.2.1 創(chuàng)建socket對象 138
9.2.2 面向連接的Socket通信實(shí)現(xiàn) 138
9.2.3 面向連接的Echo服務(wù)編程實(shí)例 140
9.2.4 無連接的Socket通信實(shí)現(xiàn) 144
9.2.5 無連接的時間服務(wù)編程實(shí)例 145
9.3 Socket高級應(yīng)用 148
9.3.1 Socket超時處理 148
9.3.2 使用Select機(jī)制處理多連接 149
9.3.3 使用Poll機(jī)制處理多連接 151
9.3.4 多線程環(huán)境Socket編程 152
9.4 小結(jié) 152
第10章 串行口通信編程 154
10.1 串口介紹 154
10.1.1 什么是串口 154
10.1.2 串口工作原理 154
10.1.3 串口流量控制 155
10.2 開發(fā)串口應(yīng)用程序 156
10.2.1 操作串口需要用到的頭文件 156
10.2.2 串口操作方法 157
10.2.3 串口屬性設(shè)置 157
10.2.4 與Windows串口終端通信 161
10.3 串口應(yīng)用實(shí)例——手機(jī)短信發(fā)送 163
10.3.1 PC與手機(jī)連接發(fā)送短信的物理結(jié)構(gòu) 164
10.3.2 AT指令介紹 164
10.3.3 GSM AT指令集 165
10.3.4 PDU編碼方式 165
10.3.5 建立與手機(jī)的連接 167
10.3.6 使用AT指令發(fā)送短信 167
10.4 小結(jié) 171
第11章 嵌入式GUI程序開發(fā) 172
11.1 Linux GUI介紹 172
11.1.1 Linux GUI的發(fā)展 172
11.1.2 常見的嵌入式GUI 173
11.2 開發(fā)圖形界面程序 174
11.2.1 安裝Qt開發(fā)環(huán)境 174
11.2.2 建立簡單的Qt程序 176
11.2.3 Qt庫編程結(jié)構(gòu) 178
11.3 深入Qt編程 179
11.3.1 使用Widget 179
11.3.2 對話框程序設(shè)計(jì) 181
11.3.3 信號與槽系統(tǒng) 185
11.4 移植Qtopia到ARM開發(fā)板 186
11.4.1 需要的資源 186
11.4.2 準(zhǔn)備工作 187
11.4.3 編譯主機(jī)Qt工具 187
11.4.4 交叉編譯qtopia 189
11.5 小結(jié) 190
第12章 軟件項(xiàng)目管理 191
12.1 源代碼管理 191
12.1.1 什么是軟件的版本 191
12.1.2 版本控制的概念 192
12.2 版本控制系統(tǒng)Subversion 193
12.2.1 在Linux系統(tǒng)下使用Subversion服務(wù)端 193
12.2.2 在Windows系統(tǒng)下使用TortoiseSVN客戶端 195
12.3 開發(fā)文檔管理——常見的開發(fā)文檔 199
12.3.1 可行性研究報(bào)告 200
12.3.2 項(xiàng)目開發(fā)計(jì)劃 200
12.3.3 軟件需求說明書 200
12.3.4 概要設(shè)計(jì) 200
12.3.5 詳細(xì)設(shè)計(jì) 200
12.3.6 用戶手冊 201
12.3.7 其他文檔 201
12.4 使用trac管理軟件開發(fā)文檔 201
12.4.1 安裝trac 201
12.4.2 配置trac基本設(shè)置 202
12.4.3 配置trac全局腳本 204
12.4.4 設(shè)置trac的Web界面 205
12.5 Bug跟蹤系統(tǒng) 208
12.5.1 Bug管理的概念和作用 208
12.5.2 使用Bugzilla跟蹤Bug 208
12.6 小結(jié) 211
第3篇 Liux系統(tǒng)篇
第13章 ARM體系結(jié)構(gòu)及開發(fā)實(shí)例 214
13.1 ARM體系結(jié)構(gòu)介紹 214
13.1.1 ARM體系結(jié)構(gòu) 214
13.1.2 ARM指令集介紹 215
13.2 編程模型 216
13.2.1 數(shù)據(jù)類型 216
13.2.2 處理器模式 216
13.2.3 寄存器 217
13.2.4 通用寄存器 217
13.2.5 程序狀態(tài)寄存器 219
13.2.6 異常處理 219
13.2.7 內(nèi)存和內(nèi)存I/O映射 220
13.3 內(nèi)存管理單元 221
13.3.1 內(nèi)存管理介紹 221
13.3.2 內(nèi)存訪問順序 222
13.3.3 地址翻譯過程 222
13.3.4 訪問權(quán)限 223
13.4 常見接口和控制器 223
13.4.1 GPIO接口 223
13.4.2 中斷控制器 224
13.4.3 RTC控制器 224
13.4.4 看門狗定時器 225
13.4.5 試驗(yàn):使用GPIO點(diǎn)亮LED 226
13.5 小結(jié) 227
第14章 深入Bootloader 228
14.1 初識Bootloader 228
14.1.1 PC(個人電腦)上的Bootloader 228
14.1.2 什么是嵌入式系統(tǒng)的Bootloader 229
14.1.3 嵌入式系統(tǒng)常見的Bootloader 229
14.2 U-Boot分析 230
14.2.1 獲取U-Boot 230
14.2.2 U-Boot工程結(jié)構(gòu)分析 230
14.2.3 U-Boot總體工作流程 232
14.3 U-Boot啟動流程分析 233
14.3.1 _start標(biāo)號 233
14.3.2 reset標(biāo)號 235
14.3.3 cpu_init_crit標(biāo)號 237
14.3.4 lowlevel_init標(biāo)號 238
14.3.5 relocate標(biāo)號 239
14.3.6 start_armboot()函數(shù) 240
14.3.7 main_loop()函數(shù) 244
14.4 移植U-Boot到開發(fā)板 248
14.4.1 U-Boot移植的一般步驟 248
14.4.2 移植U-Boot到目標(biāo)開發(fā)板 249
14.4.3 移植U-Boot的常見問題 250
14.5 小結(jié) 251
第15章 解析Linux內(nèi)核 252
15.1 基本知識 252
15.1.1 什么是Linux內(nèi)核 252
15.1.2 Linux內(nèi)核版本 253
15.1.3 如何獲取Linux內(nèi)核代碼 253
15.1.4 編譯內(nèi)核 253
15.2 Linux內(nèi)核的子系統(tǒng) 260
15.2.1 系統(tǒng)調(diào)用接口 260
15.2.2 進(jìn)程管理子系統(tǒng) 261
15.2.3 內(nèi)存管理子系統(tǒng) 262
15.2.4 虛擬文件系統(tǒng) 263
15.2.5 網(wǎng)絡(luò)堆棧 264
15.2.6 設(shè)備驅(qū)動 265
15.2.7 依賴體系結(jié)構(gòu)的代碼 266
15.3 Linux內(nèi)核代碼的工程結(jié)構(gòu) 266
15.3.1 源代碼目錄布局 266
15.3.2 幾個重要的Linux內(nèi)核文件 267
15.4 內(nèi)核編譯系統(tǒng) 268
15.4.1 內(nèi)核編譯系統(tǒng)基本架構(gòu) 269
15.4.2 內(nèi)核頂層Makefile分析 269
15.4.3 內(nèi)核編譯文件分析 274
15.4.4 目標(biāo)文件清除機(jī)制 278
15.4.5 編譯輔助程序 279
15.4.6 KBuild變量 281
15.5 小結(jié) 282
第16章 嵌入式Linux啟動流程 283
16.1 Linux內(nèi)核初始化流程 283
16.2 PC的初始化流程 284
16.2.1 PC BIOS功能和作用 284
16.2.2 硬盤的數(shù)據(jù)結(jié)構(gòu).. 285
16.2.3 完整的初始化流程 286
16.3 嵌入式系統(tǒng)的初始化 286
16.4 Linux內(nèi)核初始化 287
16.4.1 解壓縮內(nèi)核映像 287
16.4.2 進(jìn)入內(nèi)核代碼 289
16.5 啟動init內(nèi)核進(jìn)程 291
16.6 根文件系統(tǒng)初始化 292
16.6.1 根文件系統(tǒng)介紹 292
16.6.2 掛載虛擬文件系統(tǒng) 294
16.7 內(nèi)核交出權(quán)限 300
16.8 init進(jìn)程 300
16.9 初始化RAM Disk 301
16.9.1 RAM Disk介紹 301
16.9.2 如何使用RAM Disk 302
16.9.3 實(shí)例:使用RAM Disk作為根文件系統(tǒng) 302
16.10 小結(jié) 303
第17章 Linux文件系統(tǒng) 304
17.1 Linux文件管理 304
17.1.1 文件和目錄的概念 304
17.1.2 文件的結(jié)構(gòu) 305
17.1.3 文件的類型 305
17.1.4 文件系統(tǒng)的目錄結(jié)構(gòu) 307
17.1.5 文件和目錄的存取權(quán)限 308
17.1.6 文件系統(tǒng)管理 310
17.2 Linux文件系統(tǒng)原理 311
17.2.1 非日志文件系統(tǒng) 311
17.2.2 日志文件系統(tǒng) 311
17.3 常見的Linux文件系統(tǒng) 312
17.3.1 ext2文件系統(tǒng) 312
17.3.2 ext3文件系統(tǒng) 315
17.3.3 ReiserFS文件系統(tǒng) 315
17.3.4 JFFS文件系統(tǒng) 316
17.3.5 cramfs文件系統(tǒng) 318
17.4 其他文件系統(tǒng) 319
17.4.1 網(wǎng)絡(luò)文件系統(tǒng) 319
17.4.2 /proc影子文件系統(tǒng) 320
17.5 小結(jié) 323
第18章 建立交叉編譯工具鏈 324
18.1 什么是交叉編譯 324
18.2 需要哪些東西 325
18.3 手工創(chuàng)建工具鏈 325
18.3.1 準(zhǔn)備工作——獲取源代碼 326
18.3.2 開始了——建立工作環(huán)境 326
18.3.3 建立Linux內(nèi)核頭文件 327
18.3.4 編譯安裝binutils 330
18.3.5 編譯安裝gcc的C編譯器 331
18.3.6 編譯安裝glibc庫 332
18.3.7 編譯安裝gcc的C、C++編譯器 333
18.3.8 最后的工作 334
18.4 使用腳本創(chuàng)建工具鏈 334
18.5 更簡便的方法——獲取已編譯好的交叉編譯環(huán)境 336
18.6 小結(jié) 336
第19章 強(qiáng)大的命令系統(tǒng)BusyBox 337
19.1 BusyBox簡介 337
19.1.1 簡單易懂的BusyBox 337
19.1.2 BusyBox工作原理 338
19.1.3 安裝BusyBox 339
19.2 交叉編譯BusyBox 341
19.3 使用BusyBox 343
19.3.1 BusyBox初始化 344
19.3.2 目標(biāo)板BusyBox安裝 346
19.4 小結(jié) 348
第20章 Linux內(nèi)核移植 349
20.1 Linux內(nèi)核移植要點(diǎn) 349
20.2 平臺相關(guān)代碼結(jié)構(gòu) 350
20.3 建立目標(biāo)平臺工程框架 351
20.3.1 加入編譯菜單項(xiàng) 352
20.3.2 設(shè)置宏與代碼文件的對應(yīng)關(guān)系 352
20.3.3 測試工程框架 353
20.4 建立目標(biāo)平臺代碼框架 354
20.4.1 ARM處理器相關(guān)結(jié)構(gòu) 354
20.4.2 建立machine_desc結(jié)構(gòu) 356
20.4.3 加入處理函數(shù) 356
20.4.4 加入定時器結(jié)構(gòu) 357
20.4.5 測試代碼結(jié)構(gòu) 357
20.5 構(gòu)建目標(biāo)板代碼 357
20.5.1 處理器初始化 358
20.5.2 端口映射 360
20.5.3 中斷處理 361
20.5.4 定時器處理 361
20.5.5 編譯最終代碼 361
20.6 小結(jié) 362
第21章 內(nèi)核和應(yīng)用程序調(diào)試技術(shù) 363
21.1 使用GDB調(diào)試應(yīng)用程序概述 363
21.2 基本的調(diào)試技術(shù) 363
21.2.1 列出源代碼 366
21.2.2 斷點(diǎn)管理 368
21.2.3 執(zhí)行程序 370
21.2.4 顯示程序變量 370
21.2.5 信號管理 371
21.2.6 調(diào)試實(shí)例 371
21.3 多進(jìn)程調(diào)試 372
21.4 調(diào)試意外終止的程序 374
21.5 內(nèi)核調(diào)試技術(shù) 376
21.5.1 printk打印調(diào)試信息 376
21.5.2 使用/proc虛擬文件系統(tǒng) 377
21.5.3 使用KDB調(diào)試工具 379
21.5.4 KDB調(diào)試指令 382
21.6 小結(jié) 384
第4篇 Linux嵌入式驅(qū)動開發(fā)篇
第22章 Linux設(shè)備驅(qū)動 386
22.1 設(shè)備驅(qū)動介紹 386
22.2 Linux內(nèi)核模塊 386
22.2.1 內(nèi)核模塊簡介 387
22.2.2 內(nèi)核模塊的結(jié)構(gòu) 387
22.2.3 內(nèi)核模塊的加載和卸載 388
22.2.4 編寫一個基本的內(nèi)核模塊 389
22.2.5 編譯內(nèi)核模塊 390
22.2.6 為內(nèi)核模塊添加參數(shù) 391
22.3 Linux設(shè)備驅(qū)動 392
22.3.1 PCI局部總線介紹 392
22.3.2 Linux設(shè)備驅(qū)動基本概念 393
22.3.3 字符設(shè)備 394
22.3.4 塊設(shè)備 396
22.3.5 網(wǎng)絡(luò)設(shè)備 396
22.4 字符設(shè)備驅(qū)動開發(fā)實(shí)例 396
22.4.1 開發(fā)一個基本的字符設(shè)備驅(qū)動 397
22.4.2 測試字符設(shè)備驅(qū)動 399
22.5 小結(jié) 400
第23章 網(wǎng)絡(luò)設(shè)備驅(qū)動程序 401
23.1 網(wǎng)絡(luò)基礎(chǔ)知識 401
23.1.1 ISO/OSI網(wǎng)絡(luò)參考模型 401
23.1.2 TCP/IP協(xié)議 402
23.2 以太網(wǎng)基礎(chǔ) 404
23.2.1 工作原理 405
23.2.2 常見以太網(wǎng)標(biāo)準(zhǔn) 405
23.2.3 拓?fù)浣Y(jié)構(gòu) 406
23.2.4 工作模式 406
23.3 網(wǎng)卡工作原理 407
23.4 內(nèi)核網(wǎng)絡(luò)分層結(jié)構(gòu) 408
23.4.1 內(nèi)核網(wǎng)絡(luò)結(jié)構(gòu) 408
23.4.2 與網(wǎng)絡(luò)有關(guān)的數(shù)據(jù)結(jié)構(gòu) 409
23.4.3 內(nèi)核網(wǎng)絡(luò)部分的全局變量 410
23.5 內(nèi)核網(wǎng)絡(luò)設(shè)備驅(qū)動框架 411
23.5.1 net_device結(jié)構(gòu) 411
23.5.2 數(shù)據(jù)包接收流程 413
23.5.3 數(shù)據(jù)包發(fā)送流程 415
23.6 實(shí)例:DM9000網(wǎng)卡驅(qū)動分析 416
23.6.1 DM9000芯片介紹 416
23.6.2 網(wǎng)卡驅(qū)動程序框架 416
23.6.3 DM9000網(wǎng)卡驅(qū)動主要數(shù)據(jù)結(jié)構(gòu) 417
23.6.4 加載驅(qū)動程序 418
23.6.5 停止和啟動網(wǎng)卡 423
23.6.6 發(fā)送數(shù)據(jù)包 425
23.6.7 接收數(shù)據(jù)包 427
23.6.8 中斷和定時器處理 429
23.7 小結(jié) 431
第24章 Flash設(shè)備驅(qū)動 432
24.1 Linux Flash驅(qū)動結(jié)構(gòu) 432
24.1.1 什么是MTD 432
24.1.2 MTD系統(tǒng)結(jié)構(gòu) 433
24.2 Flash設(shè)備基礎(chǔ) 434
24.2.1 存儲原理 434
24.2.2 性能比較 435
24.3 內(nèi)核MTD層 436
24.3.1 mtd_info結(jié)構(gòu) 436
24.3.2 mtd_part結(jié)構(gòu) 439
24.3.3 mtd_partition結(jié)構(gòu) 440
24.3.4 map_info結(jié)構(gòu) 440
24.3.5 nand_chip結(jié)構(gòu) 442
24.4 Flash設(shè)備框架 443
24.4.1 NOR Flash設(shè)備驅(qū)動框架 443
24.4.2 NAND Flash設(shè)備驅(qū)動框架 444
24.5 Flash設(shè)備驅(qū)動實(shí)例——NOR Flash設(shè)備驅(qū)動剖析 445
24.5.1 數(shù)據(jù)結(jié)構(gòu) 446
24.5.2 驅(qū)動初始化 446
24.5.3 驅(qū)動卸載 447
24.6 Flash設(shè)備驅(qū)動實(shí)例——NAND Flash設(shè)備驅(qū)動分析 448
24.6.1 S3C2440 NAND控制器介紹 448
24.6.2 數(shù)據(jù)結(jié)構(gòu) 450
24.6.3 驅(qū)動初始化 450
24.6.4 驅(qū)動卸載 454
24.6.5 初始化NAND控制器 455
24.6.6 設(shè)置芯片操作 456
24.6.7 電源管理 458
24.7 小結(jié) 459
第25章 USB驅(qū)動開發(fā) 460
25.1 USB體系介紹 460
25.1.1 USB設(shè)計(jì)目標(biāo) 460
25.1.2 USB體系概述 461
25.1.3 USB體系工作流程 462
25.2 USB驅(qū)動程序框架 462
25.2.1 Linux內(nèi)核USB驅(qū)動框架 462
25.2.2 主機(jī)驅(qū)動結(jié)構(gòu) 465
25.2.3 設(shè)備驅(qū)動結(jié)構(gòu) 468
25.2.4 USB驅(qū)動程序框架 470
25.3 USB驅(qū)動實(shí)例剖析 473
25.3.1 USB串口驅(qū)動 473
25.3.2 USB鍵盤驅(qū)動 475
25.4 小結(jié) 478

本目錄推薦

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