第1章概述1
1.1背景延伸: 現代信息與計算概念的緣起1
1.1.1麥克斯韋妖、信息與智慧1
1.1.2計算理論與技術的出現3
1.1.3現代計算機技術的誕生與演化5
1.1.4電子通信與網絡技術發展8
1.2理解嵌入式繫統9
1.2.1計算裝置的可嵌入發展9
1.2.2嵌入式繫統內涵的演化11
1.2.3相關術語辨析15
1.3嵌入式繫統的組成與特點17
1.3.1組成結構17
1.3.2技術特點與發展趨勢18
1.4知識體繫23
1.5小結26
習題26
第2章嵌入式硬件基礎27
2.1器件和電路術語件27
2.1.1器件術語27
2.1.2電路術語30
2.1.件32
2.2嵌入式繫統硬件組成38
2.2.1硬件基本架構模型38
2.2.2處理器子繫統39
2.2.3存儲子繫統41
2.2.4時鐘子繫統42
2.2.5I/O子繫統44
2.3嵌入式繫統硬件典型形式44
2.3.1基於通用計算機擴展的嵌入式硬件44
2.3.2基於領域標準模塊集成的嵌入式硬件45
2.3.3面向具體產品的專用嵌入式硬件47
2.4硬件設計基本方法48
2.4.1Protel EDA軟件48
2.4.2電路設計基本流程51
2.4.3電磁兼容性問題53
2.4.4低功耗問題57
2.4.5嵌入式硬件設計示例58
2.5小結67
習題67
第3章嵌入式處理器68
3.1處理器模型與邏輯體繫68
3.1.1處理器基本組成模型 68
3.1.2典型處理器架構72
3.2嵌入式處理器的類型及特點76
3.2.1嵌入式微控制器76
3.2.2嵌入式微處理器78
3.2.3數字信號處理器80
3.2.4可編程邏輯器件83
3.2.5片上繫統91
3.2.6多核、眾核處理器94
3.3典型嵌入式處理器體繫102
3.3.1ARM架構102
3.3.2MIPS架構117
3.3.3PowerPC架構122
3.4性能評價指標131
3.5小結133
習題133
第4章嵌入式存儲技術134
4.1基本存儲體繫與模型134
4.1.1嵌入式繫統存儲體繫134
4.1.2存儲器結構模型135
4.1.3存儲器基本操作流程136
4.1.4存儲器指標137
4.2存儲器分類及特性139
4.2.1隻讀存儲器139
4.2.2隨機存儲器144
4.2.3混合存儲器155
4.3存儲器測試與驗證173
4.3.1可讀寫存儲器的測試173
4.3.2隻讀存儲器測試174
4.4小結176
習題176
第5章最小繫統與外圍電路設計178
5.1理解最小繫統178
5.2電源電路179
5.2.1電源電路設計方法179
5.2.2延伸: 電源管理與低功耗設計183
5.3復位電路187
5.3.1上電復位188
5.3.2手動復位193
5.3.3看門狗復位195
5.3.4軟件復位196
5.4時鐘電路200
5.4.1信號源: 振蕩電路原理200
5.4.2多時鐘管理205
5.4.3延伸: 時鐘管理與低功耗設計211
5.5電路抖動與消抖211
5.5.1抖動現像與危害211
5.5.2硬件消抖213
5.5.3軟件消抖215
5.6小結217
習題217
第6章接口、總線與網絡擴展218
6.1通用I/O與串行總線218
6.1.1GPIO218
6.1.2SPI222
6.1.3SDIO231
6.1.4I2S236
6.1.5I2C242
6.1.6UART與USART246
6.2典型工業總線、背板總線及網絡258
6.2.1CAN總線258
6.2.2實時工業以太網268
6.2.3VP線274
6.3無線接口與網絡281
6.3.1ZigBee281
6.3.2藍牙287
6.3.3WiFi299
6.3.4NFC301
6.4小結306
習題306
第7章嵌入式軟件結構與基礎軟件組件308
7.1計算繫統的啟動與運行過程308
7.1.1通用計算機啟動過程分析308
7.1.2嵌入式繫統啟動過程分析309
7.2嵌入式軟件結構312
7.2.1基於裸機的嵌入式軟件結構312
7.2.2基於嵌入式操作繫統的嵌入式軟件結構313
7.3基礎軟件組件315
7.3.1ROM Monitor315
7.3.2BootLoader318
7.3.3BSP326
7.3.4虛擬機監控程序336
7.3.5容器、微服務與雲原生 344
7.4小結346
習題347
第8章嵌入式操作繫統及其服務機制348
8.1架構與模型348
8.1.1宏內核、微內核與超微內核348
8.1.2功能模型350
8.2服務機制353
8.2.1基本概念353
8.2.2關於實時364
8.2.3內核服務機制369
8.3典型嵌入式操作繫統387
8.3.1RTX51387
8.3.2μC/OS388
8.3.3嵌入式Linux繫列390
8.3.4VxWorks395
8.3.5SylixOS397
8.3.6鴻蒙操作繫統400
8.3.7其他嵌入式操作繫統402
8.4小結407
習題407
第9章嵌入式軟件組件409
9.1嵌入式圖形庫與圖形組件409
9.1.1μC/GUI與emWin409
9.1.2NanoX Window412
9.1.3MiniGUI413
9.1.4Qt419
9.1.5可編程圖形界面屏423
9.2嵌入式文件繫統424
9.2.1JFFS/JFFS2425
9.2.2YAFFS/YAFFS2428
9.2.3UBIFS432
9.2.4隻讀文件繫統434
9.2.5RAM文件繫統435
9.3嵌入式數據庫437
9.3.1SQLite438
9.3.2Berkeley DB439
9.3.3eXtremeDB441
9.4嵌入式網絡協議棧443
9.5小結444
習題444
第10章嵌入式應用軟件設計方法445
10.1嵌入式應用軟件典型結構445
10.1.1輪轉結構445
10.1.2前後臺軟件結構447
10.1.3函數隊列調度結構450
10.1.4基於嵌入式操作繫統的軟件結構451
10.2中斷與數據共享問題453
10.2.1中斷服務程序設計453
10.2.2避免/消除數據共享457
10.3嵌入式軟件設計機制464
10.3.1可重入代碼設計464
10.3.2軟件看門狗方法468
10.3.3避免頻繁地創建、銷毀任務471
10.3.4基於狀態機方法設計軟件邏輯472
10.3.5FPGA IP核開發流程473
10.3.6生成可執行的嵌入式軟件474
10.4軟件工程方法484
10.4.1模型驅動的開發方法: 從V模型到Y模型484
10.4.2軟硬件協同設計486
10.4.3DevOps方法487
10.4.4制定編碼規範489
10.5小結491
習題491
第11章調試、測試與仿真方法492
11.1嵌入式軟件調試492
11.1.1基於宿主機的調試493
11.1.2ROM Monitor軟件調試495
11.1.3ROM仿真器496
11.1.4在線仿真器497
11.1.5JTAG調試499
11.2嵌入式軟件測試501
11.2.1基本測試方法與指標502
11.2.2測試工具的使用507
11.3繫統仿真驗證技術511
11.3.1計算機仿真方法及其原理512
11.3.2可視化技術514
11.4小結516
習題516
後記517
參考文獻518