ARM Cortex-M4體系結構與外設接口實戰開發

ARM Cortex-M4體系結構與外設接口實戰開發

本書以Cortex-M4系列的Kinetis處理器為基礎,從ARM的基礎理論知識入手,以不同的外設為基準點講解Cortex-M4系列的強大功能,主要內容涵蓋Cortex-M4核心簡介、Cortex-M4核心結構、Cortex-M4彙編指令集、DSP擴展指令和FPU、Cortex-M4彙編語言與C語言混合編程、系統控制和存儲管理、Cortex-M4的異常處理、嵌套中斷向量控制器、Cortex-M4調試與跟蹤系統、開發環境介紹、以mC/OS-II移植例程理解Cortex-M4核心編程、基於Cortex-M4核心的Kinetis架構介紹、Kinetis系統控制模組和時鐘模組、Freescale Kinetis開發實例等內容。

圖書內容

本書以Cortex-M4系列的Kinetis處理器為基礎,從ARM的基礎理論知識入手,以不同的外設為基準點講解Cortex-M4系列的強大功能,主要內容涵蓋Cortex-M4核心簡介、Cortex-M4核心結構、Cortex-M4彙編指令集、DSP擴展指令和FPU、Cortex-M4彙編語言與C語言混合編程、系統控制和存儲管理、Cortex-M4的異常處理、嵌套中斷向量控制器、Cortex-M4調試與跟蹤系統、開發環境介紹、以mC/OS-II移植例程理解Cortex-M4核心編程、基於Cortex-M4核心的Kinetis架構介紹、Kinetis系統控制模組和時鐘模組、Freescale Kinetis開發實例等內容。  

目 錄

第1章 Cortex-M4核心簡介 1

1.1 主流的ARM處理器介紹 1

1.1.1 ARM體系結構的命名規則 2

1.1.2 ARM Cortex應用程式處理器 2

1.1.3 ARM Cortex嵌入式處理器 4

1.1.4 經典ARM處理器 8

1.1.5 ARM專家處理器 9

1.1.6 其他ARM處理器 10  

1.1.7 ARM處理器的特點 11

1.2 套用領域 11

1.3 ARM Cortex-M4簡介 12

1.3.1 Cortex-M4信號處理技術 13

1.3.2 ARM Cortex-M微控制器技術 13

1.4 以ARM Cortex-M4為核心的處理器 14

本章小結 16

第2章 Cortex-M4核心結構 17

2.1 Cortex-M4處理器與核心外圍設備 17

2.2 流水線 21

2.3 Cortex-M4的匯流排接口 23

2.4 Cortex-M4相關暫存器組 28

2.4.1 暫存器 28

2.4.2 異常與中斷 34  

2.5 操作模式 34

本章小結 35

第3章 Cortex-M4彙編指令集 37

3.1 Cortex-M4指令集 37

3.1.1 ARM32和Thumb指令集 37

3.1.2 Thumb-2指令集 38

3.2 CMSIS標準 38

3.3 ARM彙編語言基礎 39

3.3.1 指令的格式 40

3.3.2 運算元 40

3.3.3 PC與SP暫存器的使用限制 40

3.3.4 靈活的第二個運算元 40

3.3.5 移位運算 40

3.3.6 地址對齊 43

3.3.7 標號——PC相對地址表達式 44

3.3.8 條件碼 44

3.3.9 指令寬度 46

3.4 Cortex-M4處理器定址方式 47

3.4.1 立即定址 47

3.4.2 暫存器定址 48

3.4.3 暫存器間接定址 48  

3.4.4 暫存器偏移定址 48

3.4.5 基址變址定址 48

3.4.6 多暫存器定址 49

3.4.7 堆疊定址 49

3.5 Cortex-M4指令集 50

3.5.1 分支指令 50

3.5.2 常見的數據處理指令 55

3.5.3 乘除指令 59

3.5.4 飽和指令 61

3.5.5 擴展指令 62

3.5.6 位段操作指令 63

3.5.7 狀態暫存器訪問指令 65

3.5.8 載入存儲指令 67

3.5.9 多暫存器載入和存儲指令 69

3.5.10 雜項處理指令 70

3.5.11 異常生成指令 72

3.5.12 協處理指令——Cortex-M4不支持的指令 73  

3.6 彙編實例 74

本章小結 75

第4章 DSP擴展指令和FPU 77

4.1 簡介 77

4.2 DSP擴展指令 77

4.2.1 乘加指令 78

4.2.2 飽和指令 82

4.2.3 位段指令 83

4.2.4 SIMD並行加減指令 85

4.2.5 雜項數據處理指令 86

4.3 FPU 87

4.3.1 FPU的暫存器 87

4.3.2 FPU的操作模式 88

4.3.3 浮點數載入存儲指令 88

4.3.4 浮點數暫存器傳送指令 89

4.3.5 浮點數數據處理指令 89

本章小結 91  

第5章 Cortex-M4彙編與C混合編程 93

5.1 ATPCS概述 93

5.1.1 暫存器的使用規則 94

5.1.2 數據棧使用規則 94

5.1.3 參數傳遞規則 95

5.2 內嵌彙編 96

5.2.1 內嵌彙編的語法格式 96

5.2.2 內嵌彙編指令的特點 96

5.2.3 內嵌彙編指令注意事項 98

5.2.4 內嵌彙編指令舉例 100

5.3 ARM中的彙編和C語言相互調用 101

5.3.1 從彙編程式中訪問C程式變數 102

5.3.2 C程式調用彙編程式 102

5.3.3 彙編程式調用C程式 104

本章小結 104

第6章 系統控制和存儲管理 105

6.1 系統控制 105

6.1.1 系統控制和ID暫存器 106

6.1.2 系統定時器 107

6.1.3 可嵌套中斷向量控制器(NVIC) 108

6.1.4 記憶體保護系統架構(PMSAv7) 109

6.2 記憶體映射 109  

6.2.1 對齊訪問 112

6.2.2 位元組序(Endian) 113

6.3 位帶操作 114

6.3.1 bit-band和bit-band alias區域的訪問 116

6.3.2 bit-banding的功能 116

6.4 記憶體保護單元(MPU) 117

6.4.1 記憶體保護單元(MPU)簡介 117

6.4.2 MPU暫存器組 119

6.4.3 MPU套用示例 122

本章小結 123

第7章 Cortex-M4的異常處理 125

7.1 異常類型 125

7.2 異常的優先權 127

7.3 異常向量表 130

7.4 異常處理 131

7.4.1 異常的進入 131

7.4.2 異常中斷的回響時序 132

7.4.3 異常的返回 133

7.4.4 中斷late-arrive和tail-chaining機制 133

7.5 故障類異常 135

7.5.1 匯流排故障 135  

7.5.2 存儲器管理故障 136

7.5.3 套用故障 138

7.5.4 硬故障 139

本章小結 139

第8章 嵌套中斷向量控制器 141

8.1 NVIC介紹 141

8.2 NVIC工作原理 142

8.3 NVIC暫存器 143

8.4 中斷編程實例 145

本章小結 151

第9章 Cortex-M4調試與跟蹤系統 153

9.1 嵌入式調試技術概述 153

9.2 CoreSight技術介紹 154

9.3 Cortex-M4調試架構 155

9.4 SW-DP和SWJ-DP 156

9.4.1 SWJ-DP 156

9.4.2 SWJ-DP接口 157

9.4.3 SWJ-DP中JTAG和SWD的選擇機制 157

9.5 Cortex-M4調試模式 158

9.6 Cortex-M4的跟蹤系統 160

9.6.1 數據觀察點與跟蹤(DWT) 161

9.6.2 儀器化跟蹤宏單元(ITM) 162

9.6.3 嵌入式跟蹤單元ETM 163  

9.6.4 跟蹤連線埠接口單元(TPIU) 163

9.6.5 快閃記憶體地址重載及斷點單元(FPB) 164

本章小結 165

第10章 開發環境介紹 167

10.1 USBDM調試器 167

10.2 CodeWarrior for MCU v10.2介紹 168

10.2.1 CodeWarrior的功能和特點 168

10.2.2 CodeWarrior安裝與配置 168

10.2.3 建立第一個工程 169

10.3 Keil MDK介紹 171

10.4 Keil ULINK仿真器 173

10.5 MDK-ARM的軟體開發周期 174

10.6 μVisionIDE的使用 174

10.6.1 μVision調試器 176

10.6.2 建立第一個工程 177

10.6.3 調試 180

10.6.4 燒寫Flash 185

10.7 IAR for ARM基本介紹 186

10.7.1 IAR EWARM 開發環境IDE介紹 187

10.7.2 建立第一個工程 188

10.7.3 調試器C-SPY 191  

本章小結 193

第11章 以μC/OS-II移植例程理解Cortex-M4核心編程 195

11.1 μC/OS-II作業系統 195

11.1.1 μC/OS-II作業系統簡介 195

11.1.2 μC/OS-II的工作原理 196

11.2 μC/OS-II在Kinetis K10開發板上的移植 196

11.2.1 μC/OS-II目錄結構簡介 196

11.2.2 移植概述 197

11.2.3 移植詳解 198

11.3 測試μC/OS-II 209

11.4 板級支持包 214

本章小結 214

第12章 基於Cortex-M4核心的Kinetis架構介紹 215

12.1 Cortex-M4匯流排接口 215

12.2 Cortex-M4核心同Kinetis系統架構的連線 216

12.3 交叉開關 218

12.3.1 交叉開關簡介 218

12.3.2 交叉開關的暫存器定義 218

12.3.3 交叉開關功能描述 219

12.3.4 Kinetis K10處理器中的交叉開關 219

12.3.5 Kinetis K10處理器中的MPU 220  

本章小結 221

第13章 Kinetis系統控制模組和時鐘模組 223

13.1 Kinetis的系統控制 223

13.1.1 Kinetis架構 223

13.1.2 核心匯流排 224

13.1.3 交叉開關 224

13.1.4 記憶體耦合 226

13.1.5 系統訪問時間 228

13.2 時鐘管理 229

13.2.1 多時鐘發生器 229

13.2.2 系統振盪器 235

13.2.3 實時時鐘振盪器 238

13.3 電源管理 238

13.3.1 電源模式 239

13.3.2 進入及退出電源模式 240

13.3.3 電源模式轉換 240

13.3.4 電源模式關閉序列 240  

13.3.5 低功耗模式操作模組 241

13.3.6 時鐘門控技術 244

13.3.7 時鐘初始化實例 244

本章小結 248

第14章 Freescale Kinetis開發實例 249

14.1 系統初始化框架 249

14.2 GPIO 257

14.3 實時時鐘RTC 266

14.4 通用異步收發器 272

14.4.1 UART功能概述 272

14.4.2 UART相關暫存器 273

14.4.3 UART測試實例 278

14.5 定時器 287

14.5.1 定時器簡介 287

14.5.2 定時器測試實例 288

14.6 看門狗 291

14.6.1 看門狗簡介 291  

14.6.2 測試實例 293

14.7 模/數轉換模組 295

14.7.1 ADC功能概述 295

14.7.2 ADC特殊功能暫存器 296

14.7.3 ADC測試實例 298

14.8 矩陣鍵盤 300

14.8.1 鍵盤概述 300

14.8.2 矩陣鍵盤測試實例 302

14.9 PWM模組操作(servo9g舵機) 309

14.9.1 FTM功能概述 309

14.9.2 FTM特殊功能暫存器 310

14.9.3 FTM控制舵機測試實例 318

本章小結 324

參考文獻 325  

相關搜尋

熱門詞條

聯絡我們