当前位置:首页 > 工业技术
ARM Cortex-M3权威指南
ARM Cortex-M3权威指南

ARM Cortex-M3权威指南PDF电子书下载

工业技术

  • 电子书积分:12 积分如何计算积分?
  • 作 者:(英)JOSEPHYIU著
  • 出 版 社:北京:北京航空航天大学出版社
  • 出版年份:2009
  • ISBN:9787811245332
  • 页数:348 页
图书介绍:本书重点介绍了新的ARM架构、指令集的总结、硬件特性以及调试系统的概览。本书还提供了一些程序示例,并且在其中讲解了使用GNU工具链与ARM工具的基本方法与步骤。主要内容包括:ARM架构的背景、Cortex-M3入门、操作模式、异常与中断、汇编语言基础、存储器系统、Cortex-M3上的汇编与C编程、开发流程、电源管理、多处理机通信、开发工具、调试、Keil RealView MDK使用入门等。
《ARM Cortex-M3权威指南》目录
标签:权威 指南

第1章 介绍 1

1.1 ARM Cortex-M3处理器初探 1

1.1.1 从Cortex-M3处理器内核到基于Cortex-M3的MCU 2

1.1.2 ARM及ARM架构的背景 3

1.2 ARM的各种架构版本 4

1.3 指令集的开发 7

1.4 Thumb-2指令集体系结构(ISA) 8

1.5 Cortex-M3处理器的舞台 9

1.6 本书的组织结构 9

1.7 深入研究用的读物 10

第2章 Cortex-M3概览 11

2.1 简介 11

2.2 寄存器组 12

2.3 操作模式和特权级别 14

2.4 内建的嵌套向量中断控制器 16

2.5 存储器映射 17

2.6 总线接口 18

2.7 存储器保护单元(MPU) 18

2.8 指令集 19

2.9 中断和异常 20

2.10 调试支持 22

2.11 Cortex-M3的品性简评 22

2.11.1 高性能 23

2.11.2 先进的中断处理功能 23

2.11.3 低功耗 24

2.11.4 系统特性 24

2.11.5 调试支持 24

第3章 Cortex-M3基础 25

3.1 寄存器组 25

3.1.1 通用目的寄存器R0~R7 25

3.1.2 通用目的寄存器R8~R12 25

3.1.3 堆栈指针R13 26

3.1.4 连接寄存器R14 28

3.1.5 程序计数器R15 28

3.2 特殊功能寄存器组 29

3.2.1 程序状态寄存器(PSRs或曰xPSR) 29

3.2.2 PRIMASK、FAULTMASK和BASEPRI 30

3.2.3 控制寄存器(CONTROL) 31

3.3 操作模式 32

3.4 异常与中断 34

3.5 向量表 35

3.6 栈内存操作 36

3.7 Cortex-M3的堆栈实现 38

3.8 复位序列 40

第4章 指令集 42

4.1 汇编语言基础 42

4.1.1 汇编语言:基本语法 42

4.1.2 汇编语言:后缀的使用 44

4.1.3 汇编语言:统一汇编语言书写语法 44

4.2 指令集 45

4.2.1 分类指令表 46

4.2.2 未支持的指令 51

4.3 近距离检视指令 53

4.3.1 汇编语言:数据传送 53

4.3.2 汇编语言:数据处理 59

4.3.3 汇编语言:子程调用与无条件跳转指令 64

4.3.4 汇编语言:标志位与条件转移 65

4.3.5 汇编语言:指令隔离指令和存储器隔离指令 68

4.3.6 汇编语言:饱和运算 69

4.4 CM3中一些前卫的指令 72

4.4.1 MRS和MSR 72

4.4.2 IF-THEN 73

4.4.3 CBZ和CBNZ 74

4.4.4 SDIV和UDIV 75

4.4.5 REV,REVH,REV16以及REVSH 75

4.4.6 RBIT 76

4.4.7 SXTB,SXTH,UXTB,UXTH 76

4.4.8 BFC/BFI,UBFX/SBFX 77

4.4.9 LDRD/STRD 78

4.4.10 TBB,TBH 78

第5章 存储器系统 81

5.1 存储系统功能概览 81

5.2 存储器映射 81

5.3 存储器的各种访问属性 84

5.4 存储器的缺省访问许可 85

5.5 位带操作 86

5.5.1 位带操作的优越性 90

5.5.2 其他数据长度上的位带操作 92

5.5.3 在C语言中使用位带操作 92

5.6 非对齐数据传送 93

5.7 互斥访问 95

5.8 端模式 98

第6章 实现Cortex-M3的全景概貌 100

6.1 流水线 100

6.2 详细的框图 102

6.3 Cortex-M3的总线接口 105

6.4 Cortex-M3的其他接口 106

6.5 外部私有外设总线 107

6.6 典型的连接方式 107

6.7 复位信号 109

第7章 异常 110

7.1 异常类型 110

7.2 优先级的定义 112

7.3 向量表 117

7.4 中断输入及挂起行为 119

7.5 Fault异常 120

7.5.1 总线fault 121

7.5.2 存储器管理fault 123

7.5.3 用法fault 124

7.5.4 硬fault 126

7.5.5 应对fault 127

7.6 SVC和PendSV 127

第8章 NVIC与中断控制 132

8.1 NVIC概览 132

8.2 中断配置基础 133

8.3 中断的使能与除能 133

8.4 中断的挂起与清除 134

8.4.1 优先级 135

8.4.2 活动状态 136

8.4.3 PRIMASK与FAULTMASK特殊功能寄存器 136

8.4.4 BASEPRI寄存器 137

8.4.5 其他异常的配置寄存器 138

8.5 中断建立全过程的演示 140

8.6 软件中断 142

8.7 SysTick定时器 142

第9章 中断的具体行为 145

9.1 中断/异常的响应序列 145

9.1.1 入栈 145

9.1.2 取向量 147

9.1.3 更新寄存器 147

9.2 异常返回 147

9.3 嵌套的中断 148

9.4 咬尾中断 149

9.5 晚到(的高优先级)异常 149

9.6 异常返回值 150

9.7 中断延迟 151

9.8 异常响应期间的fault 153

第10章 Cortex-M3的低层编程 155

10.1 概览 155

10.1.1 使用汇编 155

10.1.2 使用C 156

10.2 汇编与C的接口 157

10.3 典型的开发流程 158

10.4 第1步工作 158

10.5 与外界互动 160

10.6 使用数据存储器 165

10.7 使用互斥访问实现信号量操作 166

10.8 使用位带实现互斥锁操作 168

10.9 使用位段提取与查表跳转 170

第11章 使用异常系统 172

11.1 使用中断 172

11.1.1 建立堆栈 173

11.1.2 建立向量表 174

11.1.3 建立中断优先级 174

11.1.4 使能中断 175

11.2 异常/中断服务例程 177

11.3 软件触发中断 178

11.4 异常服务例程的范例 179

11.5 使用SVC 182

11.6 SVC示范:用于输出函数 183

11.7 在C中使用SVC 186

第12章 编程进阶与系统行为 190

12.1 在系统中使用双堆栈 190

12.2 双字的堆栈对齐方式 193

12.3 非基级的线程模式 193

12.4 性能评估 197

12.5 当处理器被锁定(Lockup)时 198

12.5.1 锁定情形下的众生相 198

12.5.2 避免被锁定 199

第13章 Cortex-M3的其他特性 201

13.1 SysTick定时器 201

13.2 电源管理 204

13.3 多处理器通信 208

13.4 自复位控制 211

第14章 存储保护单元MPU 214

14.1 MPU概览 214

14.2 MPU的寄存器组 215

14.3 启用MPU 221

14.4 MPU的典型设置 227

14.5 使用子region除能的示例 228

第15章 调试系统架构 233

15.1 调试特性概览 233

15.2 CoreSight技术概览 234

15.2.1 处理器的调试接口 234

15.2.2 DP模块、AP模块和DAP 235

15.2.3 跟踪接口 236

15.2.4 CoreSight的性质 236

15.3 调试模式 238

15.4 调试事件 241

15.5 Cortex-M3中的断点 242

15.6 调试时访问寄存器 243

15.7 内核的其他调试特性 244

第16章 调试组件 246

16.1 简介 246

16.2 跟踪组件:数据观察点与跟踪(DWT) 247

16.3 跟踪组件:仪器化跟踪宏单元(ITM) 248

16.3.1 基于ITM的软件跟踪 249

16.3.2 基于ITM和DWT的硬件跟踪 249

16.3.3 ITM时间戳 250

16.4 跟踪组件:嵌入式跟踪宏单元(ETM) 250

16.5 跟踪组件:跟踪端口接口单元(TPIU) 251

16.6 闪存地址重载及断点单元(FPB) 251

16.7 AHB访问端口 254

16.8 ROM表 255

第17章 开始Cortex-M3开发 257

17.1 选择一款Cortex-M3产品 257

17.2 Cortex-M3版本0与版本1的区别 258

17.3 Cortex-M3修订版1与修订版2的区别 259

17.3.1 双字堆栈对齐方式成为缺省值 260

17.3.2 新增辅助控制寄存器(Auxiliary Control Register) 260

17.3.3 ID寄存器的更新 260

17.3.4 调试功能 261

17.3.5 睡眠特性 261

17.3.6 使用修订版2带来的好处和注意事项 261

17.4 开发工具 262

17.4.1 C编译器 263

17.4.2 嵌入式操作系统支持 263

第18章 ARM7应用程序移植到Cortex-M 265

18.1 简介 265

18.2 系统性质 266

18.2.1 存储器映射 266

18.2.2 中断/异常系统 266

18.2.3 MPU 267

18.2.4 系统控制 267

18.2.5 操作模式 267

18.3 汇编源程序 268

18.3.1 Thumb状态 269

18.3.2 ARM状态 269

18.4 C源程序 270

18.5 预编译的目标文件 271

18.6 优化 271

第19章 使用GNU工具链开始Cortex-M3开发 272

19.1 背景 272

19.2 获取GNU工具链 272

19.3 示例程序 273

19.4 访问特殊功能寄存器 286

19.5 使用未支持的指令 286

19.6 GNU C编译器的内联汇编 287

第20章 KEIL RealView Microcontroller Development Kit(RVMDK)使用入门 288

20.1 简介 288

20.2 μVision使用入门 289

20.3 使用UART输出“Hello world” 293

20.4 测试示例程序 296

20.5 使用调试器 297

20.6 指令模拟器 300

20.7 修改向量表 303

20.8 使用中断实现的秒表示例程序 303

附录A Cortex-M3指令小结 312

附录B 16位Thumb指令及架构版本 323

附录C Cortex-M3异常快速参考 324

附录D NVIC寄存器小结 326

附录E Cortex-M3疑难解答 340

E.1 简介 340

E.2 设计fault服务例程 341

E.2.1 上报fault状态寄存器 342

E.2.2 上报入栈的PC 342

E.2.3 上报fault地址寄存器 343

E.2.4 其他注意事项 343

E.3 理解发生fault的原因 344

E.4 在C中上报入栈的寄存器和各fault状态寄存器 346

返回顶部