第1章 嵌入式系統(tǒng)基礎(chǔ) 1
1.1 嵌入式系統(tǒng)概述 1
1.1.1 嵌入式系統(tǒng)的基本概念 1
1.1.2 嵌入式系統(tǒng)的應(yīng)用領(lǐng)域 2
1.1.3 嵌入式系統(tǒng)的組成 4
1.1.4 嵌入式系統(tǒng)的特點(diǎn) 5
1.1.5 嵌入式系統(tǒng)的發(fā)展趨勢 6
1.2 嵌入式操作系統(tǒng) 10
1.2.1 操作系統(tǒng)的基本功能 10
1.2.2 嵌入式操作系統(tǒng) 11
1.2.3 嵌入式操作系統(tǒng)體系結(jié)構(gòu) 12
1.2.4 嵌入式操作系統(tǒng)的選擇 16
1.2.5 幾種代表性嵌入式操作系統(tǒng)比較 17
1.3 嵌入式Linux基礎(chǔ) 19
1.3.1 Linux簡介 19
1.3.2 嵌入式Linux 23
1.3.3 Linux的安裝基礎(chǔ) 25
1.3.4 基于虛擬機(jī)的Linux的安裝 27
1.3.5 Linux虛擬機(jī)的設(shè)置 32
1.4 Linux目錄結(jié)構(gòu)及文件 35
1.4.1 Linux文件系統(tǒng) 35
1.4.2 Linux目錄結(jié)構(gòu) 38
1.4.3 文件類型及文件屬性 40
1.5 Linux常用操作命令 43
1.5.1 Shell命令基礎(chǔ) 43
1.5.2 文件與目錄相關(guān)命令 45
1.5.3 磁盤管理與維護(hù)命令 53
1.5.4 系統(tǒng)管理與設(shè)置命令 55
1.5.5 網(wǎng)絡(luò)相關(guān)命令 57
1.5.6 壓縮備份命令 60
1.6 Linux下Shell編程 62
1.6.1 Shell程序概述 62
1.6.2 Shell變量 63
1.6.3 Shell特殊字符 65
1.6.4 Shell流程控制 67
1.6.5 Shell函數(shù)定義 72
1.6.6 Shell程序示例 72
1.7 Linux啟動過程分析 74
習(xí) 題 一 79
第2章 Linux編程基礎(chǔ) 80
2.1 Linux下的C語言編程 80
2.1.1 Linux下的C語言編程概述 80
2.1.2 Linux下的C語言開發(fā)流程 82
2.2 Vim編輯器 85
2.2.1 Vim的模式 85
2.2.2 Vim常用操作 87
2.3 GCC編譯器 91
2.3.1 GCC編譯器簡介 91
2.3.2 GCC編譯流程 92
2.3.3 GCC常用編譯選項 95
2.3.4 庫依賴 98
2.4 GDB調(diào)試器 99
2.4.1 GDB概述 99
2.4.2 GDB使用流程 99
2.4.3 GDB基本命令 104
2.4.4 gdbServer遠(yuǎn)程調(diào)試 108
2.5 Make工程管理器 109
2.5.1 Make工程管理器概述 109
2.5.2 Makefile基本結(jié)構(gòu) 110
2.5.3 Makefile變量 115
2.5.4 Makefile規(guī)則 118
2.5.5 Makefile常用函數(shù) 119
2.5.6 使用自動生成工具生成 Makefile 125
2.6 Linux集成開發(fā)環(huán)境 128
2.6.1 CodeBlocks集成開發(fā)環(huán)境簡介 128
2.6.2 CodeBlocks開發(fā)流程 130
2.7 文件I/O編程 136
2.7.1 文件I/O編程基礎(chǔ) 136
2.7.2 基本I/O操作 137
2.7.3 標(biāo)準(zhǔn)I/O操作 141
2.7.4 嵌入式Linux串口通信編程 144
2.8 進(jìn)程控制編程 152
2.8.1 Linux下的進(jìn)程概述 152
2.8.2 Linux進(jìn)程編程 155
2.8.3 Zombie進(jìn)程 164
2.8.4 Linux守護(hù)進(jìn)程 165
2.9 進(jìn)程間的通信和同步 170
2.9.1 Linux下進(jìn)程間通信概述 170
2.9.2 管道通信 171
2.9.3 共享內(nèi)存通信 179
2.9.4 其他方式通信 182
2.10 多線程編程 182
2.10.1 線程的基本概念 182
2.10.2 線程的實現(xiàn) __________184
2.10.3 修改線程屬性 186
2.10.4 多線程訪問控制 188
習(xí) 題 二 190
第3章 基于Linux的嵌入式軟件開發(fā) 191
3.1 嵌入式軟件結(jié)構(gòu) 191
3.1.1 嵌入式軟件體系結(jié)構(gòu) 191
3.1.2 基于Linux的嵌入式軟件 194
3.2 嵌入式軟件開發(fā)流程 195
3.2.1 嵌入式Linux設(shè)計概述 195
3.2.2 基于開發(fā)板的二次開發(fā) 196
3.2.3 基于Linux的嵌入式軟件開發(fā)流程 198
3.3 嵌入式Linux開發(fā)環(huán)境 199
3.3.1 ARM 處理器硬件開發(fā)平臺 199
3.3.2 建立嵌入式交叉編譯環(huán)境 200
3.3.3 配置開發(fā)環(huán)境 200
3.4 嵌入式系統(tǒng)引導(dǎo)代碼 211
3.4.1 BootLoader簡介 211
3.4.2 常用的BootLoader 212
3.4.3 BootLoader基本原理 214
3.4.4 BootLoader移植實例一:U Boot 218
3.4.5 BootLoader移植實例二:Vivi 227
3.5 Linux內(nèi)核結(jié)構(gòu)及移植 229
3.5.1 Linux內(nèi)核結(jié)構(gòu) 229
3.5.2 Linux的移植 233
3.5.3 修改Linux內(nèi)核源碼 237
3.5.4 內(nèi)核的裁減 239
3.5.5 內(nèi)核的編譯和下載 241
3.6 嵌入式文件系統(tǒng)及移植 242
3.6.1 嵌入式文件系統(tǒng)的基礎(chǔ) 242
3.6.2 嵌入式文件系統(tǒng)的設(shè)計 246
3.6.3 嵌入式根文件系統(tǒng)的制作 247
3.7 Linux設(shè)備驅(qū)動概述 249
3.7.1 Linux設(shè)備驅(qū)動的作用 249
3.7.2 Linux設(shè)備驅(qū)動程序的基本結(jié)構(gòu) 250
3.7.3 Linux設(shè)備驅(qū)動的分類 251
3.7.4 Linux設(shè)備文件和設(shè)備文件系統(tǒng) 252
3.8 設(shè)備驅(qū)動程序接口 253
3.8.1 Linux設(shè)備驅(qū)動的加載方式 253
3.8.2 設(shè)備驅(qū)動程序接口 255
3.8.3 Linux設(shè)備的控制方式 257
3.9 Linux設(shè)備驅(qū)動開發(fā)流程 259
3.9.1 設(shè)備驅(qū)動開發(fā)流程 259
3.9.2 字符設(shè)備驅(qū)動框架 262
習(xí) 題 三 269
第4章 嵌入式應(yīng)用程序設(shè)計 270
4.1 嵌入式應(yīng)用程序設(shè)計概述 270
4.1.1 嵌入式軟件的分類 270
4.1.2 嵌入式GUI 271
4.1.3 常用嵌入式GUI 272
4.2 Qt編程基礎(chǔ) 274
4.2.1 Qt簡介 274
4.2.2 Qt/Embedded 276
4.2.3 Qt開發(fā)環(huán)境的搭建 277
4.2.4 Qt程序設(shè)計基本流程 280
4.3 信號和槽機(jī)制 282
4.3.1 基本概念 282
4.3.2 信號和槽機(jī)制的原理 283
4.3.3 信號和槽實例 286
4.4 圖形界面設(shè)計 288
4.4.1 Qt的窗口類 Widget 288
4.4.2 使用Qt Creator編寫 Qt程序 289
4.4.3 Qt中常用的控件 293
4.5 使用CodeBlocks開發(fā) Qt程序 296
習(xí) 題 四 301
第5章 嵌入式數(shù)據(jù)庫 302
5.1 嵌入式數(shù)據(jù)庫概述 302
5.1.1 嵌入式數(shù)據(jù)庫簡介 302
5.1.2 嵌入式數(shù)據(jù)庫的特點(diǎn)及分類 304
5.1.3 嵌入式數(shù)據(jù)庫的應(yīng)用 306
5.2 SQLite數(shù)據(jù)庫 307
5.2.1 SQLite數(shù)據(jù)庫概述 307
5.2.2 SQLite數(shù)據(jù)庫的安裝 309
5.2.3 SQLite數(shù)據(jù)庫的基本命令 310
5.2.4 SQLite數(shù)據(jù)庫的管理命令 311
5.2.5 SQLite數(shù)據(jù)庫的 API函數(shù) 314
5.2.6 SQLite數(shù)據(jù)庫的實例分析 315
習(xí) 題 五 317
第6章 嵌入式Linux網(wǎng)絡(luò)編程 318
6.1 網(wǎng)絡(luò)協(xié)議概述 318
6.1.1 網(wǎng)絡(luò)協(xié)議參考模型 318
6.1.2 TCP/IP協(xié)議族 319
6.1.3 TCP和 UDP 320
6.2 網(wǎng)絡(luò)編程基礎(chǔ) 324
6.2.1 Socket概述 324
6.2.2 基本數(shù)據(jù)結(jié)構(gòu)和函數(shù) 324
6.2.3 Socket基礎(chǔ)編程 326
6.3 TCP通信編程 328
6.3.1 TCP通信過程 328
6.3.2 TCP Server程序設(shè)計 334
6.3.3 TCP Client程序設(shè)計 336
6.3.4 TCP程序測試過程 337
6.4 UDP通信編程 338
6.4.1 UDP通信過程 338
6.4.2 UDP 服務(wù)器端程序設(shè)計 338