《ARM & Linux嵌入式系統(tǒng)教程(第3版)》圍繞最流行的32位ARM處理器和源碼開放的Linux操作系統(tǒng),講述嵌入式系統(tǒng)的概念、軟硬件組成、開發(fā)過程以及嵌入式Linux的應用程序和驅動程序的開發(fā)設計方法。全書共8章,包括從嵌入式系統(tǒng)基礎到ARM體系結構等硬件內容,從嵌入式Linux到應用程序、驅動程序、圖形用戶界面和Android(安卓)應用程序等軟件內容,并推出了自主版權的輕量級圖形用戶界面lwGUI。第2版主要升級了ARM集說明,修訂了應用程序和驅動程序設計內容,以適用于國內流行的實驗箱。第3版的第3章增加了Android操作系統(tǒng),還增加了第8章“Android應用程序設計”。
《ARM & Linux嵌入式系統(tǒng)教程(第3版)》特點是內容取材于最新資料,總結實際教學和應用經驗,實例較多,實用性強;所帶程序取材于學生的競賽、畢業(yè)設計和課程實驗,不強調具體的ARM核芯片。
《ARM & Linux嵌入式系統(tǒng)教程(第3版)》適用于沒有操作系統(tǒng)知識的單片機開發(fā)人員學習嵌入式系統(tǒng),可作為嵌入式系統(tǒng)課程理論部分的教材和學習嵌入式Linux和Android開發(fā)的參考用書。
第1章 嵌入式系統(tǒng)基礎 1
1.1 嵌入式系統(tǒng)概述 1
1.1.1 嵌入式系統(tǒng)的定義 1
1.1.2 嵌入式系統(tǒng)的組成 2
1.1.3 嵌入式系統(tǒng)的特點 4
1.1.4 嵌入式系統(tǒng)的應用 5
1.1.5 實時系統(tǒng) 6
1.2 嵌入式處理器 8
第1章 嵌入式系統(tǒng)基礎 1
1.1 嵌入式系統(tǒng)概述 1
1.1.1 嵌入式系統(tǒng)的定義 1
1.1.2 嵌入式系統(tǒng)的組成 2
1.1.3 嵌入式系統(tǒng)的特點 4
1.1.4 嵌入式系統(tǒng)的應用 5
1.1.5 實時系統(tǒng) 6
1.2 嵌入式處理器 8
1.2.1 嵌入式處理器的分類 8
1.2.2 嵌入式微處理器 8
1.2.3 微控制器 9
1.2.4 DSP處理器 10
1.2.5 片上系統(tǒng) 11
1.2.6 典型的嵌入式處理器 11
1.3 嵌入式操作系統(tǒng) 13
1.3.1 操作系統(tǒng)的概念和分類 13
1.3.2 實時操作系統(tǒng) 17
1.3.3 常見的嵌入式操作系統(tǒng) 20
1.4 實時操作系統(tǒng)的內核 24
1.4.1 任務管理 24
1.4.2 任務間的通信和同步 31
1.4.3 存儲器管理 33
1.4.4 定時器和中斷管理 34
習 題 34
第2章 嵌入式系統(tǒng)開發(fā)過程 35
2.1 嵌入式軟件開發(fā)的特點 35
2.2 嵌入式軟件的開發(fā)流程 37
2.3 嵌入式系統(tǒng)的調試 43
2.3.1 調試方式 43
2.3.2 調試方法 46
2.4 板級支持包 47
習 題 49
目 錄
目 錄
第3章 嵌入式Linux和Android操作系統(tǒng) 50
3.1 Linux和Android概述 50
3.1.1 Linux與UNIX和GNU 50
3.1.2 Linux的特點 55
3.1.3 Andriod與物聯(lián)網 56
3.2 Linux內核 58
3.2.1 Linux內核的特征 58
3.2.2 進程管理 61
3.2.3 存儲管理 67
3.2.4 文件系統(tǒng)管理 68
3.2.5 設備管理 73
3.2.6 嵌入式Linux的引導過程 77
3.2.7 Linux 2.6內核 81
3.3 主流嵌入式Linux系統(tǒng) 85
3.3.1 MontaVista Linux 85
3.3.2 μClinux 88
3.3.3 RTLinux 91
3.3.4 RTAI 93
3.4 Android操作系統(tǒng) 94
3.4.1 Android簡介 94
3.4.2 Android簡史 94
3.4.3 Android系統(tǒng)架構 95
3.3.4 Android組件模型 98
習 題 100
第4章 ARM體系結構 101
4.1 ARM體系結構概述 101
4.1.1 ARM體系結構的特點 101
4.1.2 ARM處理器結構 104
4.1.3 ARM處理器內核 114
4.1.4 ARM處理器核 125
4.2 ARM編程模型 127
4.2.1 數據類型 127
4.2.2 處理器模式 128
4.2.3 處理器工作狀態(tài) 128
4.2.4 寄存器組織 129
4.2.5 異 常 134
4.2.6 存儲器和存儲器映射I/O 136
4.3 ARM基本尋址方式 138
4.4 ARM指令集 143
4.4.1 條件執(zhí)行 143
4.4.2 指令分類說明 144
4.4.3 Thumb指令集與ARM指令集的區(qū)別 167
4.4.4 Thumb-2指令集的特點 169
4.5 ARM匯編語言程序設計 174
4.5.1 預定義的寄存器和協(xié)處理器名 174
4.5.2 ARM匯編程序規(guī)范 175
4.5.3 ARM匯編程序設計 178
習 題 182
第5章 嵌入式Linux應用程序開發(fā) 184
5.1 開發(fā)平臺簡介 184
5.1.1 S3C2410簡介 184
5.1.2 平臺上的資源 186
5.2 開發(fā)環(huán)境的建立 187
5.2.1 宿主機環(huán)境搭建 187
5.2.2 目標機和宿主機的連接 187
5.2.3 網絡文件系統(tǒng)搭建 188
5.3 Linux的使用基礎 191
5.3.1 Linux常用命令 191
5.3.2 vi編輯器的使用 199
5.4 make工具和gcc編譯器 201
5.4.1 應用程序的開發(fā)流程 201
5.4.2 make管理項目簡介 202
5.4.3 gcc編譯器的使用 203
5.5 簡單嵌入式Linux程序開發(fā) 206
5.5.1 編寫和運行應用程序 206
5.5.2 嵌入式Linux例子演示 207
5.6 LCD程序設計 209
5.6.1 LCD顯示原理 209
5.6.2 幀緩沖原理 211
5.6.3 幀緩沖使用程序 215
5.6.4 LCD程序開發(fā) 217
5.6.5 BMP文件顯示 226
5.7 USB攝像頭程序 232
5.7.1 攝像頭驅動的安裝 232
5.7.2 Video4Linux模塊應用 233
5.7.3 USB攝像頭圖像顯示 237
5.8 音頻采集和回放程序 244
5.8.1 采樣原理和采集方式 244
5.8.2 音頻設備的編程實現 245
習 題 248
第6章 嵌入式Linux驅動程序開發(fā) 249
6.1 嵌入式Linux的設備管理 249
6.1.1 Linux驅動程序概念 249
6.1.2 驅動程序的結構 250
6.1.3 Linux對中斷的處理 252
6.1.4 設備驅動的初始化 253
6.2 設備驅動程序的開發(fā)過程 255
6.2.1 設備驅動程序的開發(fā)流程 255
6.2.2 模塊化驅動程序設計 256
6.2.3 設備驅動加到Linux內核中 265
6.3 LED驅動程序 268
6.3.1 LED的硬件接口 268
6.3.2 LED驅動程序設計 268
6.3.3 LED驅動程序調用 271
6.4 鍵盤驅動程序 271
6.4.1 鍵盤的硬件接口 271
6.4.2 鍵盤驅動程序的實現 272
6.5 觸摸屏驅動程序 276
6.5.1 觸摸屏的工作原理 276
6.5.2 觸摸屏的接口設計 276
6.5.3 ADC和觸摸屏接口專用寄存器 280
6.5.4 觸摸屏的驅動程序 282
6.5.5 觸摸屏應用舉例 289
習 題 292
第7章 嵌入式Linux的GUI 293
7.1 嵌入式GUI 293
7.2 嵌入式GUI的結構特征 294
7.2.1 開源的圖形庫GTK+ 294
7.2.2 面向實時的MiniGUI 295
7.2.3 應用廣泛的Qt Embedded 296
7.2.4 輕量級的 lwGUI 298
7.3 lwGUI系統(tǒng)的設計與實現 300
7.3.1 圖形抽象層和輸入抽象層的設計與實現 300
7.3.2 消息驅動機制的設計與實現 316
7.3.3 窗口的設計與實現 319
7.3.4 控件的設計與實現 324
7.4 lwGUI系統(tǒng)的應用 327
7.4.1 繪圖板界面設計和功能設計 327
7.4.2 繪圖板應用的實現 328
習 題 331
第8章 Android應用程序設計 332
8.1 Android開發(fā)平臺簡介 332
8.1.1 Cortex-A處理器AM3715簡介 332
8.1.2 Android開發(fā)平臺上的資源 336
8.2 液晶屏顯示字符串“Hello World!” 337
8.2.1 第1個Android工程的建立 337
8.2.2 在液晶屏特定位置顯示“Hello World!” 339
8.3 按鍵輸入在液晶屏上顯示 341
8.4 延時1s的LED燈閃爍 342
8.4.1 LED控制 342
8.4.2 LED1控制示例程序 343
8.5 串口輸出字符串PC機超級終端顯示 347
8.5.1 Android下串口 347
8.5.2 Android串口示例程序 347
8.6 讀取SD卡圖片顯示 354
8.7 USB攝像頭視頻采集 357
8.7.1 Video4Linux2(V4L2)模塊 358
8.7.2 USB攝像頭采集圖像顯示 358
8.8 網口UDP數據傳輸 362
8.8.1 Android UDP傳輸過程 362
8.8.2 簡單UDP傳輸示例 363
8.9 WiFi無線信息傳輸 364
8.10 錄音和音頻混音 370
8.10.1 聲音的存儲及采樣 370
8.10.2 WAV音頻文件 371
8.10.3 錄音和放音 372
8.10.4 混 音 373
8.10.5 音頻混音演示軟件 374
習 題 379
參考文獻 380