本書系統(tǒng)地介紹了ARM體系結(jié)構(gòu)下的Cortex-M3多核處理器系統(tǒng)開發(fā)涉及的軟/硬件基礎知識,重點突出Cortex-M3基本系統(tǒng)開發(fā)方法。在內(nèi)容組織和框架設計上具有兩個鮮明的特點:全案例、基于讀者學習。本書從讀者學習的角度,對Cortex-M3常用的指令集、典型外設模塊的原理、CAN總線、操作系統(tǒng)μC/OS-Ⅱ,以及軟件安裝及其應用設計均以若干完整案例呈現(xiàn),同時給出了綜合性工程案例的經(jīng)驗,這些都十分有利于讀者學習和模仿。本書從實際應用出發(fā),講解淺顯細致,可作為高等院校計算機科學與技術、軟件工程、電子信息工程、通信工程、自動化、機器人工程、物聯(lián)網(wǎng)應用等專業(yè)的教材,也可作為從事檢測、自動控制等領域工作的嵌入式系統(tǒng)工程技術人員的參考用書。
肖中。1979年9月生,湖北大悟人,工學博士,教授,碩士生導師,國家級一流自動化專業(yè)負責人,山東省高等學校課程思政研究中心研究員、山東省繼續(xù)教育課程思政研究中心主任。主講山東省一流本科課程《過程控制》、山東省數(shù)字化優(yōu)質(zhì)課程《儀表及自動化》、《過程控制》課程思政示范課。主持省級以上教學科研課題5項,發(fā)表高水平教科研論文30余篇,出版專著1部,編著2部,教材2部。曾獲學校第一屆“說課能手”、第三屆教學方法改革標兵、第六屆“師德標兵”榮譽稱號。
目 錄
第1章 嵌入式系統(tǒng)及ARM微處理器概述 1
1.1 嵌入式系統(tǒng)概述 1
1.1.1 嵌入式系統(tǒng)定義 1
1.1.2 嵌入式發(fā)展歷程 1
1.2 嵌入式操作系統(tǒng) 4
1.2.1 操作系統(tǒng) 4
1.2.2 實時操作系統(tǒng) 5
1.2.3 通用型操作系統(tǒng) 6
1.2.4 常見的嵌入式操作系統(tǒng) 6
1.2.5 嵌入式常見術語 9
1.3 ARM微處理器概述 12
1.3.1 ARM描述 12
1.3.2 ARM微處理器的應用領域及特點 13
1.3.3 ARM微處理器系列 13
1.3.4 ARM微處理器的結(jié)構(gòu) 16
1.3.5 ARM微處理器的應用選型 17
第2章 ARM體系結(jié)構(gòu)描述 19
2.1 ARM體系結(jié)構(gòu)特點 19
2.2 各ARM體系結(jié)構(gòu)版本 19
2.2.1 ARM體系結(jié)構(gòu)版本V1 19
2.2.2 ARM體系結(jié)構(gòu)版本V2 19
2.2.3 ARM體系結(jié)構(gòu)版本V3 20
2.2.4 ARM體系結(jié)構(gòu)版本V4 20
2.2.5 ARM體系結(jié)構(gòu)版本V5 20
2.2.6 ARM體系結(jié)構(gòu)版本V6 20
2.2.7 ARM體系結(jié)構(gòu)版本V7 21
2.3 處理器模式 21
2.4 內(nèi)部寄存器 21
2.5 處理器異常 23
2.6 STM32存儲器組織 28
2.7 調(diào)試接口 29
第3章 Cortex-M3微控制器 31
3.1 STM32概述 31
3.2 Cortex-M3微控制器特性 31
3.2.1 ARM Cortex-M3處理器 31
3.2.2 NVIC 31
3.2.3 片上Flash程序存儲器 32
3.2.4 20KB片內(nèi)SRAM 32
3.2.5 通用DMA控制器 32
3.2.6 多層AHB矩陣 32
3.2.7 串行接口 32
3.2.8 其他外設 33
3.2.9 JTAG 33
3.3 STM32系列內(nèi)部結(jié)構(gòu)方框圖 34
3.4 外圍硬件介紹 35
3.4.1 STM32F103RBT6 CPU硬件電路圖 35
3.4.2 電源電路 37
3.4.3 晶振電路 37
3.4.4 復位電路 38
3.4.5 LCD顯示接口電路 38
3.4.6 獨立按鍵電路 39
3.4.7 串口電路 39
3.4.8 蜂鳴器電路 39
3.4.9 RTC供電電路 40
3.4.10 JTAG調(diào)試電路 40
3.4.11 AT24C02硬件電路 41
3.4.12 SPI Flash通信電路 41
3.4.13 A/D(D/A)轉(zhuǎn)換電路 42
3.4.14 USB接口電路 44
3.4.15 CAN總線電路 45
第4章 指令集、時鐘 48
4.1 Thumb-2指令集 48
4.2 指令格式 48
4.3 常用指令 48
4.3.1 存儲器訪問指令 48
4.3.2 數(shù)據(jù)處理指令 51
4.3.3 分支指令 55
4.3.4 中斷和斷點指令 56
4.4 Cortex-M3時鐘控制 57
4.4.1 SYSCLK系統(tǒng)時鐘 57
4.4.2 高速外部時鐘信號HSE 59
4.4.3 監(jiān)控SYSCLK時鐘 60
4.4.4 高速內(nèi)部時鐘信號HSI 60
4.4.5 PLL時鐘 61
4.4.6 AHB、APB1、APB2時鐘 61
4.4.7 MCO時鐘 62
4.4.8 低速外部時鐘LSE 62
4.4.9 低速內(nèi)部時鐘LSI 63
4.4.10 RTC時鐘 64
第5章 Cortex-M3接口分析與應用 65
5.1 GPIO分析與應用 65
5.1.1 GPIO簡介 65
5.1.2 與GPIO相關的寄存器 67
5.1.3 GPIO端口應用案例 70
5.2 USART實驗 72
5.2.1 USART簡介 72
5.2.2 USART特性 72
5.2.3 與USART相關的寄存器 74
5.2.4 硬件連接 83
5.2.5 UART口應用案例 83
5.3 模/數(shù)轉(zhuǎn)換器 85
5.3.1 ADC簡介 85
5.3.2 ADC的主要參數(shù) 85
5.3.3 STM32系列ADC的特點 85
5.3.4 與ADC相關的寄存器 86
5.3.5 硬件連接 97
5.3.6 ADC應用案例 97
5.4 定時器分析與應用 99
5.4.1 通用定時器簡介 99
5.4.2 STM32系列通用定時器的特點 99
5.4.3 與通用定時器相關的寄存器 100
5.4.4 定時器應用案例 108
5.5 中斷分析與應用 110
5.5.1 中斷簡介 110
5.5.2 STM32中斷特性 110
5.5.3 中斷向量表 111
5.5.4 中斷應用案例 113
5.6 RTC實驗 115
5.6.1 STM32系列RTC的特點 116
5.6.2 與RTC相關的寄存器 116
5.6.3 RTC應用案例 121
5.7 I2C分析與應用 123
5.7.1 STM32系列I2C的特點 123
5.7.2 與I2C相關的寄存器 124
5.7.3 I2C應用案例 133
5.8 看門狗分析與應用 135
5.8.1 STM32系列IWDG的特點 135
5.8.2 與IWDG相關的寄存器 135
5.8.3 看門狗應用案例 138
5.9 SPI分析與應用 139
5.9.1 SPI簡介 139
5.9.2 SPI特點 140
5.9.3 與SPI相關的寄存器 140
5.9.4 SPI應用案例 148
第6章 CAN總線分析與應用 151
6.1 CAN簡介 151
6.2 bxCAN主要特點 151
6.3 與CAN相關的寄存器 152
6.4 CAN總線應用案例 167
第7章 協(xié)處理器DMA分析與應用 171
7.1 DMA簡介 171
7.2 DMA控制器特點 171
7.3 DMA控制器功能描述 172
7.3.1 DMA功能框圖 172
7.3.2 DMA通道配置 174
7.3.3 DMA中斷 174
7.4 DMA相關控制模塊 174
7.4.1 DMA1控制器 174
7.4.2 DMA2控制器 176
7.5 DMA控制器應用案例 177
第8章 μC/OS-Ⅱ簡介 179
8.1 微控制器操作系統(tǒng) 179
8.2 μC/OS-Ⅱ描述 181
8.2.1 μC/OS-Ⅱ特性 181
8.2.2 結(jié)構(gòu)組成 182
8.2.3 工作原理 182
8.2.4 μC/OS-Ⅱ管理 183
8.2.5 任務調(diào)度 183
8.3 μC/OS-Ⅱ中斷機理 184
8.3.1 函數(shù)調(diào)用和中斷調(diào)用的操作 184
8.3.2 任務級和中斷級的任務切換步驟和原理 184
8.4 μC/OS-Ⅱ優(yōu)先級處理 186
8.4.1 優(yōu)先級翻轉(zhuǎn) 186
8.4.2 優(yōu)先級翻轉(zhuǎn)的合理解決 187
8.5 μC/OS-Ⅱ開發(fā)注意事項 188
8.5.1 任務框架 188
8.5.2 軟件層次 188
8.5.3 互斥信號對象 189
8.5.4 調(diào)用函數(shù)的處理 189
8.6 μC/OS-Ⅱ圖書 190
8.7 μC/OS-Ⅱ操作系統(tǒng)移植 190
8.7.1 μC/OS-Ⅱ成功移植的條件 190
8.7.2 μC/OS-Ⅱ移植的相關工作 191
8.7.3 用戶實時任務編寫 191
第9章 Keil集成開發(fā)環(huán)境介紹及應用 192
9.1 Keil軟件安裝 192
9.1.1 編譯軟件安裝 192
9.1.2 驅(qū)動程序安裝 192
9.2 新建工程 192
9.2.1 寄存器版新建工程 193
9.2.2 Keil軟件新建工程 194
參考文獻 199