《ARM Cortex-M4体系结构与外设接口实战开发》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:奚海蛟,童强,林庆峰编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2014
  • ISBN:9787121239076
  • 页数:325 页
图书介绍:本书主要内容涵盖Cortex-M4内核简介、Cortex-M4内核结构、Cortex-M4汇编指令集、DSP扩展指令和FPU、Cortex-M4汇编与C混合编程、系统控制和存储管理、Cortex-M4的异常处理、嵌套中断向量控制器、Cortex-M4调试与跟踪系统、开发环境介绍、以uC/OSII移植例程理解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.1 0杂项处理指令 70

3.5.1 1异常生成指令 72

3.5.1 2 协处理指令——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 forARM基本介绍 186

10.7.1 IAR EWARM开发环境IDE介绍 187

10.7.2 建立第一个工程 188

10.7.3 调试器C-SPY 191

本章小结 193

第11章 以μC/OS-Ⅱ移植例程理解Cortex-M4内核编程 195

11.1 μC/OS-Ⅱ操作系统 195

11.1.1 μC/OS-Ⅱ操作系统简介 195

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

11.2 μC/OS-Ⅱ在Kinetis K10开发板上的移植 196

11.2.1 μC/OS-Ⅱ目录结构简介 196

11.2.2 移植概述 197

11.2.3 移植详解 198

11.3 测试μC/OS-Ⅱ 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