基于ARM架構的嵌入式系統(tǒng)開發(fā)--以Linux系統(tǒng)為例
定 價:98 元
當前圖書已被 4 所學校薦購過!
查看明細
- 作者:代飛,苗晟
- 出版時間:2025/3/1
- ISBN:9787030720269
- 出 版 社:科學出版社
- 中圖法分類:TP332,TP316.89
- 頁碼:236
- 紙張:
- 版次:1
- 開本:16
本書圍繞嵌入式系統(tǒng)的組成,從硬件和軟件兩個方面對嵌入式系統(tǒng)進行全面深入的介紹,著重講述嵌入式系統(tǒng)的操作系統(tǒng)移植、系統(tǒng)編程和驅動開發(fā)等內容,并加入大量編程實例和開發(fā)流程以幫助讀者快速掌握相關知識,最后簡要介紹嵌入式系統(tǒng)發(fā)展趨勢和未來研究重點。
更多科學出版社服務,請掃碼獲取。
CCF昆明分部的監(jiān)督委員會主席(2019-2022)、云南省高等學校計算機科學與技術專業(yè)教學指導委員會秘書(2012-2016)
目錄
第1章 嵌入式系統(tǒng)概述 1
1.1 嵌入式系統(tǒng)的定義 1
1.2 嵌入式系統(tǒng)的組成 2
1.2.1 硬件組成 2
1.2.2 軟件組成 6
1.3 嵌入式系統(tǒng)課程介紹 8
1.3.1 從單片機到嵌入式 9
1.3.2 嵌入式系統(tǒng)的學科體系 10
1.3.3 嵌入式系統(tǒng)的學習方法 12
1.4 本章小結 13
第2章 ARM架構和匯編語言 14
2.1 ARM架構 14
2.1.1 芯片架構 14
2.1.2 ARM簡介 15
2.1.3 ARM發(fā)展歷程 17
2.1.4 ARM系列芯片應用范圍 18
2.2 嵌入式系統(tǒng)的常用知識點 20
2.2.1 馮?諾依曼結構和哈佛結構 20
2.2.2 精簡指令集和復雜指令集 21
2.2.3 I/O端口編址方式 22
2.2.4 流水線技術 23
2.2.5 中斷 23
2.2.6 DMA傳輸 25
2.2.7 Jazelle加速器 26
2.3 Cortex-M3架構分析 27
2.3.1 Cortex-M3寄存器 27
2.3.2 Cortex-M3工作模式 31
2.3.3 Cortex-M3存儲器映射 32
2.3.4 操作模式和特權級別 34
2.3.5 Cortex-M3中斷控制器 35
2.3.6 Cortex-M3總評 36
2.3.7 STM32系列微控制器 37
2.4 ARM指令集 38
2.4.1 匯編語言簡介 38
2.4.2 ARM指令集發(fā)展歷程 39
2.4.3 ARM指令簡介 39
2.4.4 ARM指令書寫格式 41
2.4.5 ARM指令尋址方式 42
2.4.6 Thumb-2指令集 44
2.5 ARM指令 45
2.5.1 ARM指令基礎 45
2.5.2 常用ARM指令 45
2.5.3 偽指令 49
2.5.4 ARM匯編語言程序架構 51
2.5.5 匯編語言和C語言的混合編程 53
2.5.6 Cortex-M3開發(fā)工具 55
2.5.7 STM32固件庫簡介 56
2.6 本章小結 57
第3章 嵌入式系統(tǒng)外圍電路 58
3.1 嵌入式系統(tǒng)外圍電路概述 58
3.1.1 外圍電路構成 58
3.1.2 外圍電路種類 58
3.1.3 底板和核心板 59
3.2 時鐘和定時器 59
3.2.1 ARM時鐘分類 59
3.2.2 “看門狗”和RTC實時時鐘 61
3.2.3 工作模式與時鐘 63
3.3 存儲器 63
3.3.1 存儲器概述 64
3.3.2 存儲器擴展 65
3.3.3 Flash 66
3.3.4 eMMC 67
3.3.5 Ramdisk技術 67
3.4 總線接口 68
3.4.1 串行接口 68
3.4.2 IIC總線 70
3.4.3 IIS總線 71
3.4.4 SPI總線 71
3.4.5 現(xiàn)場總線 72
3.4.6 CAN總線 73
3.4.7 支持熱插拔總線 74
3.4.8 并行接口 76
3.5 網(wǎng)絡接口 77
3.5.1 網(wǎng)絡協(xié)議 77
3.5.2 無線網(wǎng)與有線網(wǎng) 77
3.5.3 藍牙 78
3.5.4 ZigBee 78
3.5.5 Wi-Fi 78
3.6 人機交互 79
3.6.1 常見的交互接口 80
3.6.2 可穿戴設備 81
3.7 本章小結 81
第4章 Linux基礎 83
4.1 Linux概述 83
4.1.1 Linux簡史 84
4.1.2 Linux的讀法 84
4.1.3 Linux的特點 84
4.1.4 Linux內核簡介 85
4.1.5 Linux系統(tǒng)架構簡述 85
4.1.6 Linux學習及建議 86
4.2 Linux入門 88
4.2.1 Shell簡介 88
4.2.2 Linux用戶及權限 89
4.2.3 Shell常用命令 90
4.2.4 U盤和TF卡的掛載 93
4.3 Shell編程 94
4.3.1 編譯型語言和解釋型語言 94
4.3.2 一個簡單的Shell例程 95
4.3.3 Shell變量 95
4.3.4 Shell算術運算 96
4.3.5 Shell循環(huán) 97
4.3.6 Shell分支語句 98
4.4 Linux編譯環(huán)境搭建 101
4.4.1 Linux的發(fā)行版本 101
4.4.2 虛擬機與Ubuntu的安裝 102
4.4.3 Linux交叉編譯環(huán)境搭建 102
4.4.4 開發(fā)常用軟件 102
4.5 本章小結 103
第5章 嵌入式Linux內核移植 105
5.1 深入嵌入式Linux系統(tǒng)架構 105
5.1.1 BootLoader簡介 106
5.1.2 Uboot簡介 106
5.1.3 Linux系統(tǒng)層次 108
5.1.4 Linux內核 109
5.1.5 Linux文件 110
5.1.6 Linux內核源碼 111
5.2 內核編譯基礎 112
5.2.1 內核裁剪 112
5.2.2 Menuconfig的操作 113
5.2.3 Kconfig文件 114
5.2.4 .config文件 116
5.2.5 編譯路徑設置 118
5.2.6 內核編譯流程 119
5.3 Linux最小系統(tǒng)的搭建和移植 120
5.3.1 BusyBox 120
5.3.2 最小系統(tǒng)搭建所需文件 122
5.3.3 將可執(zhí)行文件編譯到最小系統(tǒng) 122
5.3.4 系統(tǒng)移植過程 123
5.3.5 Linux的啟動過程 125
5.4 其他常用系統(tǒng)移植 126
5.4.1 Android系統(tǒng)移植 126
5.4.2 使用TF卡燒寫QTE系統(tǒng) 128
5.5 本章小結 130
第6章 Linux系統(tǒng)編程 132
6.1 系統(tǒng)編程簡述 132
6.1.1 編譯一個簡單程序 132
6.1.2 交叉編譯工具 133
6.1.3 Makefile文件 134
6.1.4 基于Makefile文件的系統(tǒng)編程 136
6.2 Linux編程 139
6.2.1 Linux的文件操作 139
6.2.2 驅動測試編程 145
6.2.3 延時函數(shù)簡介 146
6.2.4 時間基礎知識 147
6.3 多進程程序開發(fā) 151
6.3.1 進程基礎 151
6.3.2 進程操作 153
6.3.3 進程通信的管道 155
6.3.4 進程通信的信號 158
6.3.5 共享內存shmdata 160
6.4 本章小結 164
第7章 Linux驅動開發(fā) 165
7.1 Linux驅動簡介 165
7.2 簡單的Linux驅動模塊開發(fā) 166
7.2.1 最簡驅動模塊程序 166
7.2.2 驅動模塊的編譯 167
7.2.3 驅動模塊的運行 169
7.3 驅動注冊 170
7.3.1 系統(tǒng)總線和設備查看 172
7.3.2 設備注冊 173
7.3.3 驅動注冊 174
7.3.4 設備節(jié)點生成 176
7.4 硬件電路和驅動的對應 176
7.4.1 硬件基礎 176
7.4.2 物理地址和虛擬地址對應 177
7.4.3 GPIO在Linux中的驅動實例 179
7.5 本章小結 184
第8章 Android應用開發(fā)基礎 186
8.1 搭建Android 應用的開發(fā)環(huán)境 186
8.1.1 下載JDK 186
8.1.2 Android JDK和修改JDK環(huán)境變量 186
8.1.3 下載SDK 187
8.1.4 ADT集成開發(fā)環(huán)境 187
8.1.5 創(chuàng)建Android模擬器 188
8.1.6 創(chuàng)建第一個Android應用程序(Hello world) 189
8.2 ADB驅動 190
8.2.1 安裝ADB驅動 190
8.2.2 安裝ADB驅動常見問題及解決方法 191
8.3 JNI基礎概念 192
8.3.1 JNI應用例子 193
8.3.2 Android.MK文件 194
8.3.3 安裝NDK編譯器 195
8.3.4 編譯Android動態(tài)鏈接庫 196
8.4 Android應用程序 197
8.4.1 導入LED應用程序工程 197
8.4.2 導入工程常見問題 198
8.4.3 在模擬器上調試 199
8.4.4 在開發(fā)板上調試 200
8.4.5 串口應用程序和藍牙應用 200
8.5 本章小結 204
第9章 嵌入式系統(tǒng)新進展 205
9.1 嵌入式系統(tǒng)與物聯(lián)網(wǎng) 205
9.1.1 物聯(lián)網(wǎng)概念及特點 205
9.1.2 物聯(lián)網(wǎng)的優(yōu)勢 206
9.1.3 物聯(lián)網(wǎng)中的云計算 208
9.2 嵌入式系統(tǒng)與邊緣計算 210
9.2.1 邊緣計算 210
9.2.2 邊緣計算環(huán)境下的硬件架構 211
9.2.3 邊緣計算算法設計 212
9.2.4 MCU向AI芯片的變革 212
9.3 霧計算及其特點 213
9.4 工業(yè)機器人 215
9.4.1 工業(yè)機器人的主要應用領域 215
9.4.2 工業(yè)機器人舉例 216
9.5 可穿戴設備和人機交互 217
9.5.1 可穿戴設備 218
9.5.2 人機交互 218
9.5.3 人機交互的限制 219
9.5.4 人機交互的發(fā)展 220
9.6 嵌入式系統(tǒng)綜合進展及應用案例 220
9.6.1 嵌入式系統(tǒng)的綜合進展 220
9.6.2 嵌入式系統(tǒng)綜合應用案例 222
9.7 本章小結 224
第10章 嵌入式系統(tǒng)實驗 225
10.1 開發(fā)板選購 225
10.2 STM32開發(fā)實驗 225
10.2.1 STM32開發(fā)環(huán)境搭建 227
10.2.2 STM32工程模板搭建 227
10.2.3 STM32輸入輸出實驗 228
10.2.4 STM32中斷實驗 228
10.2.5 STM32液晶顯示實驗 229
10.2.6 STM32綜合實驗 229
10.3 系統(tǒng)移植實驗 229
10.3.1 在虛擬機上安裝Linux系統(tǒng)(Ubuntu) 230
10.3.2 Shell命令操作 230
10.3.3 Linux最小系統(tǒng)編譯移植實驗 231
10.3.4 Android移植實驗 232
10.3.5 Linux系統(tǒng)編程實驗 232
10.4 本章小結 233
參考文獻 234