《Cortex-M3技术手册参考》是一份深入介绍ARM Cortex-M3处理器架构、指令集及开发技巧的专业文档,适用于嵌入式系统开发者和研究人员。
### Cortex-M3技术参考手册知识点总结
#### 一、处理器概览
**1.1 处理器特性**
- **低功耗设计:** Cortex-M3是一款专为低功耗应用设计的处理器。
- **快速中断响应:** 特别适用于需要快速中断处理的深度嵌入式应用。
- **低成本调试:** 具备高效的调试机制,降低了开发过程中的调试成本。
**1.2 组件结构**
- **ARMv7-M架构:** Cortex-M3基于ARMv7-M架构,这是一种专门为微控制器设计的架构。
- **处理器内核:** 内核是Cortex-M3的核心部分,负责执行指令和管理硬件资源。
- **NVIC (Nested Vectored Interrupt Controller)**:用于管理和调度中断,支持多级中断优先级。
- **总线矩阵:** 负责处理器与内存和其他外设之间的通信。
- **FPB (Flash Patch and Breakpoint Unit)**:提供对闪存的补丁功能以及硬件断点支持。
- **DWT (Data Watchpoint and Trace)**:用于数据监视和跟踪。
- **ITM (Instrumentation Trace Macrocell)**:提供指令跟踪功能。
- **MPU (Memory Protection Unit)**:用于内存保护和访问控制。
- **ETM (Embedded Trace Macrocell)**:支持高级跟踪功能。
- **TPIU (Trace Port Interface Unit)**:作为ETM和外部跟踪工具之间的接口。
- **SWJTAG-DP (Serial WireJoint Test Action Group Debug Port)**:提供调试接口。
**1.3 可配置选项**
- **中断:** 支持多种中断优先级配置。
- **MPU:** 可根据应用需求配置不同的内存保护策略。
- **ETM:** 可配置高级跟踪特性。
#### 二、编程模型
**2.1 工作模式与状态**
- **工作模式:** Cortex-M3有两种工作模式:Thread模式和Handler模式。
- **工作状态:** 支持Thumb-2状态和Thumb-2状态下的Thumb子集状态。
**2.2 特权与用户访问**
- **特权访问:** 特权模式下可以访问所有寄存器和内存空间。
- **用户访问:** 用户模式下只能访问一部分寄存器。
**2.3 寄存器**
- **通用寄存器:** 包括R0-R12,用于存放数据和指针。
- **特殊用途寄存器**:
- **xPSR (Extended Program Status Register)**:包含状态标志和控制位。
- **控制寄存器**:如控制寄存器CPSR和程序状态寄存器SPSR。
- **栈指针寄存器**:包括主栈指针MSP和进程栈指针PSP。
**2.4 数据类型**
- **整型**:包括8位、16位和32位整型。
- **浮点型**:Cortex-M3不支持浮点运算,需要通过软件库实现。
**2.5 存储器格式**
- **大端**:高字节位于低地址。
- **小端**:低字节位于低地址。
**2.6 指令集**
- **Thumb-2指令集**:包含了大量优化指令,提高代码密度和性能。
#### 三、系统控制
**3.1 处理器寄存器汇总**
- **NVIC寄存器**:用于中断管理和控制。
- **内核调试寄存器**:支持调试操作。
- **系统调试寄存器**:用于系统级的调试功能。
- **调试接口端口寄存器**:支持SWDP调试接口。
- **MPU寄存器**:用于配置内存保护单元。
- **ETM寄存器**:支持高级跟踪功能。
- **TPIU寄存器**:作为ETM和外部工具之间的接口。
**3.2 存储器映射**
- **存储器映射**:定义了不同内存区域的地址范围和功能。
- **Bit-banding**:一种特殊的内存访问机制,用于高效地访问位字段。
#### 四、时钟与复位
**4.1 时钟**
- **Cortex-M3时钟源**:主要包括内部RC振荡器、外部晶振等。
- **时钟树**:用于配置和控制各个时钟源。
**4.2 复位**
- **上电复位**:在电源上电时自动触发。
- **系统复位**:通过软件指令或外部引脚触发。
- **JTAG-DP复位**:通过JTAG接口触发。
- **SW-DP复位