定 價:75 元
叢書名:高等學校新工科計算機類專業(yè)系列教材
- 作者:王忠民
- 出版時間:2025/6/1
- ISBN:9787560676517
- 出 版 社:西安電子科技大學出版社
- 中圖法分類:TP360.21
- 頁碼:
- 紙張:
- 版次:1
- 開本:16開
本書介紹了嵌入式系統(tǒng)的概念、ARM處理器的發(fā)展歷程、Cortex系列處理器和STM32微控制器,詳細講解了ARM Cortex-M3微處理器的體系結構、指令系統(tǒng)以及基于該處理器的程序設計方法。在硬件接口編程部分,本書圍繞STM32F103微控制器,詳細介紹了GPIO、定時器、外部中斷、USART、I2C和ADC等關鍵外設的原理及應用,通過大量的實例仿真,幫助讀者掌握這些外設的使用方法和編程技巧。此外,本書還介紹了嵌入式操作系統(tǒng)的基本概念,并以μC/OS-II為例,深入講解了嵌入式應用程序的開發(fā)過程,使讀者能夠了解并掌握嵌入式操作系統(tǒng)在復雜嵌入式系統(tǒng)中的應用。
本書可作為高等院校計算機、電子信息、自動化等專業(yè)本科生、研究生嵌入式系統(tǒng)課程的教材,也可供從事嵌入式系統(tǒng)開發(fā)的技術人員參考。
第1章 ARM嵌入式系統(tǒng)概述 1
1.1 嵌入式系統(tǒng)概述 2
1.1.1 計算機的發(fā)展歷程 2
1.1.2 “后PC時代”計算機的
發(fā)展趨勢 2
1.1.3 嵌入式系統(tǒng)的發(fā)展歷程 3
1.2 ARM處理器的發(fā)展歷程 5
1.2.1 ARM公司的發(fā)展歷程 5
1.2.2 ARM架構及處理器的發(fā)展歷程 6
1.3 ARM Cortex處理器 9
1.3.1 ARM Cortex處理器的分類 9
1.3.2 Cortex-M系列處理器 10
1.3.3 Cortex-M3處理器 11
1.4 STM32微控制器 12
1.4.1 STM32系列微控制器命名規(guī)則 13
1.4.2 STM32主要產品線 14
1.5 Keil MDK5嵌入式系統(tǒng)集成開發(fā)工具 15
1.5.1 Keil MDK5概述 15
1.5.2 基于ARM Cortex-M3處理器的
工程構建 16
1.5.3 基于STM32F1系列微控制器
芯片支持包的工程構建 17
1.6 嵌入式系統(tǒng)設計與開發(fā) 18
1.6.1 嵌入式交叉開發(fā)環(huán)境 18
1.6.2 嵌入式軟件開發(fā) 19
1.6.3 基于Proteus的嵌入式系統(tǒng)
硬件設計 19
1.6.4 嵌入式系統(tǒng)調試 22
1.7 嵌入式系統(tǒng)學習建議 24
1.7.1 ARM Cortex-M3處理器學習
難點及建議 24
1.7.2 STM32F103微控制器學習
難點及建議 24
1.7.3 嵌入式系統(tǒng)開發(fā)學習難點及建議 25
本章小結 26
習題 27
第2章 ARM Cortex-M3 微處理器
體系結構 28
2.1 ARM Cortex體系結構概述 29
2.1.1 馮??諾依曼結構和哈佛結構 29
2.1.2 復雜指令集CISC和精簡
指令集RISC 30
2.1.3 操作模式和特權級別 31
2.2 Cortex-M3的組成 33
2.2.1 Cortex-M3處理器核 33
2.2.2 存儲器保護單元MPU 34
2.2.3 Cortex-M3總線接口 35
2.2.4 跟蹤系統(tǒng) 38
2.2.5 調試接口 39
2.3 寄存器陣列 39
2.3.1 通用寄存器組 39
2.3.2 特殊功能寄存器 41
2.4 存儲器系統(tǒng) 44
2.4.1 Cortex-M3存儲器映射 44
2.4.2 位帶操作 46
2.4.3 存儲格式 50
2.5 中斷與異常 51
2.5.1 嵌套向量中斷控制器NVIC 51
2.5.2 中斷向量表 54
2.5.3 系統(tǒng)復位過程 55
本章小結 56
習題 57
第3章 ARM Cortex-M3指令系統(tǒng) 60
3.1 匯編語言基礎 61
3.1.1 ARM匯編語言指令集簡介 61
3.1.2 ARM匯編語言源程序的組成 61
3.1.3 Thumb-2指令集的編碼格式 64
3.1.4 純匯編工程的構建 66
3.2 尋址方式 72
3.2.1 立即數(shù)尋址方式 73
3.2.2 寄存器(寄存器移位)尋址方式 77
3.2.3 存儲器尋址方式 77
3.2.4 地址型操作數(shù)尋址方式 80
3.3 匯編語言指令系統(tǒng) 80
3.3.1 算術運算指令 84
3.3.2 邏輯運算與位操作指令 86
3.3.3 內部數(shù)據(jù)傳送指令 90
3.3.4 存儲器數(shù)據(jù)傳輸(Load/Store)
指令 92
3.3.5 比較與測試指令 95
3.3.6 控制轉移指令 96
本章小結 97
習題 98
第4章 基于ARM Cortex-M3微處理器的
程序設計 102
4.1 ARM匯編語言的程序結構 102
4.2 ARM匯編器偽指令 104
4.2.1 段定義偽指令 104
4.2.2 數(shù)據(jù)定義偽指令 105
4.2.3 過程定義偽指令 107
4.2.4 宏定義偽指令 108
4.2.5 其他偽指令 108
4.3 ARM匯編語言程序設計 110
4.3.1 順序程序 110
4.3.2 分支程序 111
4.3.3 循環(huán)程序 113
4.3.4 過程調用 116
4.4 C與匯編語言混合編程 118
4.4.1 ARM架構過程調用標準
AAPCS 119
4.4.2 C程序內嵌匯編代碼 121
4.4.3 C程序調用匯編過程 123
4.4.4 匯編程序調用C函數(shù) 126
4.4.5 C與匯編程序變量互訪 129
本章小結 131
習題 131
第5章 STM32F103微控制器 133
5.1 STM32系列微控制器概述 133
5.1.1 STM32系列微控制器 134
5.1.2 STM32F103系列微控制器 134
5.2 STM32F103微控制器組成 136
5.2.1 系統(tǒng)架構 136
5.2.2 存儲結構 139
5.2.3 中斷系統(tǒng) 143
5.2.4 時鐘系統(tǒng) 149
5.2.5 引腳定義 153
5.2.6 啟動配置 153
5.3 STM32F103微控制器最小系統(tǒng) 154
5.3.1 電源電路 156
5.3.2 時鐘電路 156
5.3.3 復位電路 157
5.3.4 調試與下載電路 158
本章小結 159
習題 160
第6章 基于STM32F103微控制器的
嵌入式系統(tǒng)開發(fā)基礎 162
6.1 STM32開發(fā)模式 163
6.1.1 寄存器開發(fā)模式 165
6.1.2 標準外設庫開發(fā)模式 168
6.1.3 HAL庫開發(fā)模式 170
6.1.4 LL庫開發(fā)模式 171
6.2 CMSIS軟件接口標準及其支持包 173
6.2.1 CMSIS軟件接口標準 174
6.2.2 STM32F1xx微控制器的設備
支持包下載與安裝 175
6.2.3 基于設備支持包的工程構建 176
6.3 STM32F1標準外設庫 177
6.3.1 STM32F10x標準外設庫的
組成 177
6.3.2 STM32F10x標準外設庫中的
文件關系 179
6.3.3 標準外設庫C語言基礎 185
6.4 基于標準外設庫的工程構建 188
6.4.1 創(chuàng)建存放工程的工程文件夾 188
6.4.2 在Keil MDK中創(chuàng)建工程 190
6.5 嵌入式系統(tǒng)的仿真與調試 198
6.5.1 基于Proteus的仿真調試 198
6.5.2 基于硬件調試器的調試 199
本章小結 201
習題 202
第7章 GPIO原理及應用 204
7.1 GPIO概述 205
7.2 STM32F103中的GPIO 206
7.2.1 GPIO的引腳描述 206
7.2.2 GPIO的內部結構 207
7.2.3 GPIO的工作模式 208
7.2.4 GPIO的內部寄存器 209
7.3 GPIO庫函數(shù)開發(fā)原理 213
7.4 基于寄存器的GPIO輸入輸出
仿真與實現(xiàn) 217
7.4.1 功能描述與硬件設計 217
7.4.2 軟件設計與仿真實現(xiàn) 217
7.5 基于標準外設庫的GPIO輸入輸出
仿真與實現(xiàn) 221
7.5.1 標準外設庫中與GPIO相關的
常用接口函數(shù) 221
7.5.2 GPIO輸入輸出仿真與實現(xiàn) 222
本章小結 227
習題 228
第8章 定時器原理及應用 229
8.1 定時器概述 229
8.2 STM32F103的定時器 231
8.2.1 STM32F103定時器分類 231
8.2.2 基本定時器 233
8.2.3 通用定時器 235
8.2.4 高級控制定時器 248
8.3 基于寄存器操作的定時器應用實例
?仿真與實現(xiàn) 248
8.3.1 功能描述與硬件設計 248
8.3.2 軟件設計與仿真實現(xiàn) 249
8.4 基于標準外設庫的定時器應用
實例仿真與實現(xiàn) 252
8.4.1 標準外設庫中與通用定時器
相關的常用接口函數(shù) 253
8.4.2 軟件設計與仿真實現(xiàn) 253
本章小結 258
習題 259
第9章 外部中斷及應用 260
9.1 中斷概述 260
9.2 STM32F103的外部中斷 262
9.2.1 NVIC的主要寄存器 263
9.2.2 EXTI內部結構 270
9.2.3 EXTI工作原理 272
9.2.4 EXTI內部寄存器 272
9.3 基于寄存器操作的中斷應用實例
?仿真與實現(xiàn) 274
9.3.1 功能描述與硬件設計 274
9.3.2 軟件設計與仿真實現(xiàn) 274
9.4 基于標準外設庫的中斷應用實例
?仿真與實現(xiàn) 279
9.4.1 標準外設庫中與EXTI相關的
接口函數(shù) 279
9.4.2 軟件設計與仿真實現(xiàn) 280
本章小結 285
習題 286
第10章 USART原理及應用 287
10.1 數(shù)據(jù)通信的基本概念 287
10.2 STM32F103中的USART 290
10.2.1 USART的內部結構 290
10.2.2 USART的數(shù)據(jù)傳輸過程 293
10.2.3 USART中斷 296
10.2.4 USART內部寄存器 297
10.3 基于寄存器操作的USART應用
實例仿真與實現(xiàn) 300
10.3.1 功能描述與硬件設計 300
10.3.2 軟件設計與仿真實現(xiàn) 301
10.4 基于標準外設庫的USART應用
實例仿真與實現(xiàn) 309
10.4.1 標準外設庫中與USART
相關的接口函數(shù) 309
10.4.2 軟件設計與仿真實現(xiàn) 310
本章小結 317
習題 318
第11章 I2C串行通信原理及應用 319
11.1 I2C串行通信原理 319
11.2 STM32F103中的I2C接口 321
11.2.1 STM32F103微控制器I2C
接口簡介 322
11.2.2 STM32F103微控制器I2C
接口工作原理 323
11.2.3 STM32F103微控制器I2C
內部寄存器 327
11.3 基于寄存器操作的I2C應用實例
?仿真與實現(xiàn) 335
11.3.1 功能描述與硬件設計 336
11.3.2 軟件設計與仿真實現(xiàn) 336
11.4 基于標準外設庫的I2C應用實例
仿真與實現(xiàn) 341
11.4.1 標準外設庫中與I2C相關的
接口函數(shù) 341
11.4.2 軟件設計與仿真實現(xiàn) 342
本章小結 349
習題 350
第12章 ADC原理及應用 351
12.1 ADC概述 352
12.2 STM32F103中的ADC接口 354
12.2.1 ADC接口簡介 354
12.2.2 ADC的內部結構 355
12.2.3 STM32F103的ADC工作原理 357
12.2.4 ADC內部寄存器 362
12.3 基于寄存器操作的ADC應用實例
仿真與實現(xiàn) 367
12.3.1 功能描述與硬件設計 367
12.3.2 軟件設計與仿真實現(xiàn) 367
12.4 基于標準外設庫的ADC應用實例
仿真與實現(xiàn) 373
12.4.1 標準外設庫中與ADC相關的
接口函數(shù) 373
12.4.2 軟件設計與仿真實現(xiàn) 373
本章小結 380
習題 381
第13章 基于嵌入式操作系統(tǒng)的應用
?程序開發(fā) 382
13.1 嵌入式應用程序開發(fā)的特點 382
13.1.1 開發(fā)調試環(huán)境的建立 383
13.1.2 基于嵌入式處理器的直接
編程技術 384
13.1.3 基于嵌入式操作系統(tǒng)的
編程技術 385
13.2 μC/OS-Ⅱ應用程序結構分析 386
13.3 基于μC/OS-Ⅱ的程序設計技術 388
13.3.1 任務劃分與設計 388
13.3.2 任務間行為同步 390
13.3.3 任務間共享資源同步 392
13.3.4 任務間數(shù)據(jù)通信 394
13.4 μC/OS-Ⅱ在ARM微處理器上的
移植 394
13.4.1 μC/OS-Ⅱ對處理器的要求 394
13.4.2 μC/OS-Ⅱ移植相關文件 394
13.4.3 μC/OS-Ⅱ移植過程 397
13.5 應用程序設計實例 407
13.5.1 功能描述與硬件設計 407
13.5.2 應用程序設計 408
本章小結 414
習題 415
參考文獻 416