### ARM常用的22个概念详解 #### 一、ARM中一些常见英文缩写解释 - **MSB(Most Significant Bit)**:最高有效位。在二进制表示中,MSB指的是数字序列中最左边的位,它具有最高的数值权重。 - **LSB(Least Significant Bit)**:最低有效位。在二进制表示中,LSB指的是数字序列中最右边的位,它具有最低的数值权重。 - **AHB(Advanced High-performance Bus)**:先进的高性能总线。AHB是一种总线架构标准,主要用于连接高性能组件,如CPU和高速存储器。 - **VPB(VLSI Peripherals Bus)**:连接片内外设功能的VLSI(Very Large Scale Integration)外设总线。VPB用于连接各种外部设备,如定时器、ADC、DAC等。 - **EMC(External Memory Controller)**:外部存储器控制器。EMC负责管理与外部存储器之间的通信,例如DRAM、ROM等。 - **MAM(Memory Acceleration Module)**:存储器加速模块。MAM的作用在于减少从外部存储器读取数据的时间延迟,从而提高系统的整体性能。 - **VIC(Vector Interrupt Controller)**:向量中断控制器。VIC用于管理中断请求,它可以根据中断源的优先级排序并调度中断处理程序。 - **SPI(Serial Peripheral Interface)**:全双工串行接口。SPI是一种同步串行通信协议,广泛用于微控制器和外围设备之间的通信。 - **CAN(Controller Area Network)**:控制器局域网,一种串行通讯协议。CAN总线用于实时应用中,特别适用于汽车电子系统中多个ECU(电子控制单元)之间的通信。 - **PWM(Pulse Width Modulation)**:脉宽调制器。PWM技术通过调整信号脉冲宽度来控制功率输出,常用于电机控制和LED亮度调节等领域。 - **ETM(Embedded Trace Macrocell)**:嵌入式跟踪宏。ETM用于监控和记录处理器内部的活动,以便于调试和性能分析。 - **CPSR(Current Program Status Register)**:当前程序状态寄存器。CPSR包含了处理器的状态信息,如条件码标志、中断允许位等。 - **SPSR(Saved Program Status Register)**:程序保护状态寄存器。SPSR在发生异常时保存CPSR的值,以便于恢复现场。 #### 二、MAM使用注意事项 MAM(Memory Acceleration Module)的使用需要特别注意以下几点: 1. **关闭与重配置**:在更改MAM的定时值之前,必须首先通过向MAMCR(MAM Control Register)写入0来关闭MAM。随后,将新的定时值写入MAMTIM(MAM Timing Register),最后将所需的操作模式值写回MAMCR,重新开启MAM。 2. **不同系统时钟下的设置**: - 对于系统时钟频率低于20MHz的情况,推荐将MAMTIM设置为001。 - 对于20MHz至40MHz的系统时钟频率,建议将Flash访问时间设定为2个时钟周期(2cclk)。 - 对于超过40MHz的系统时钟频率,建议使用3个时钟周期(3cclk)作为Flash访问时间。 #### 三、VIC使用注意事项 向量中断控制器(VIC)的使用需要遵循以下原则: 1. **中断向量重映射**:若在片内RAM中运行代码且应用程序需要调用中断,必须将中断向量重新映射到Flash地址0x0。这是由于所有的异常向量均位于地址0x0及以上的区域。通过将MEMMAP寄存器(位于系统控制模块中)配置为用户RAM模式,可以实现这一点。 2. **中断向量表位置**:用户代码应被链接到使得中断向量表加载到0x40000000地址处。 #### 四、ARM启动代码设计 ARM启动代码的设计主要包括以下几个方面: 1. **中断向量表**:定义系统的所有中断服务程序入口。 2. **存储器系统初始化**:配置存储器控制器,如设置存储器类型、时序等。 3. **堆栈初始化**:设置堆栈指针,以确保函数调用时的正确性。 4. **特殊端口/设备初始化**:根据系统需求,配置特定的I/O端口或外部设备。 5. **用户程序执行环境**:建立必要的运行环境,如初始化全局变量、打开调试端口等。 6. **处理器模式更改**:设置处理器初始模式,通常是用户模式。 7. **主应用程序调用**:最终跳转到主应用程序的起始地址。 #### 五、IRQ与FIQ的区别 - **IRQ(Interrupt Request)**:普通中断模式,用于处理大多数外部中断事件。 - **FIQ(Fast Interrupt Request)**:快速中断模式,用于高速数据传输或通道管理。FIQ的特点是具有更高的优先级,并且在FIQ模式下可以使用更多的影子寄存器以减少上下文切换的时间开销。 #### 六、ARM处理器对异常中断的响应过程 ARM处理器响应异常中断的过程如下: 1. **保存当前状态**:包括CPSR(当前程序状态寄存器)、中断屏蔽位以及其他条件标志位。 2. **设置CPSR**:修改CPSR中的模式位,指示进入异常处理模式。 3. **保存返回地址**:将LR(Link Register)设置为异常处理结束后的返回地址。 4. **跳转到中断向量**:将PC(Program Counter)指向相应的异常向量地址,开始执行异常处理程序。 #### 七、ARM指令与Thumb指令的区别 - **ARM指令**:32位指令集,适用于高性能计算场景,具有较高的执行效率。 - **Thumb指令**:16位指令集,针对存储系统数据总线为16位的应用系统设计,指令长度较短,有利于节省存储空间。 #### 八、ATPCS介绍 - **ATPCS(ARM Thumb Procedure Call Standard)**:是为了实现C语言程序与汇编程序之间的相互调用而制定的一套规则。ATPCS规定了函数调用的参数传递方式、寄存器使用规范、栈帧布局等内容。 #### 九、ARM程序与Thumb程序混合使用的场合 混合使用ARM和Thumb程序的典型场景包括: 1. **追求速度的场合**:ARM指令集通常提供更高的执行效率。 2. **特定功能实现**:某些高级特性如中断管理只能通过ARM指令实现。 3. **异常处理程序**:当处理器进入异常处理模式时,默认进入ARM状态。 #### 十、ARM处理器运行模式 ARM处理器支持以下七种运行模式: 1. **用户模式(usr)**:正常程序执行状态。 2. **快速中断模式(fiq)**:用于高速数据传输或通道管理。 3. **外部中断模式(irq)**:用于处理通用中断事件。 4. **管理模式(svc)**:操作系统或其他特权软件用于执行系统调用。 5. **系统模式(sys)**:类似于用户模式,但允许访问所有系统资源。 6. **未定义模式(und)**:处理未定义指令错误。 7. **中止模式(abt)**:处理数据或指令访问中止错误。 通过上述详细介绍,我们可以更深入地理解ARM处理器及其相关的技术细节。这些知识点不仅有助于开发者更好地利用ARM平台的功能,也为进一步的研究和实践提供了坚实的基础。
- 粉丝: 5
- 资源: 906
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 【安卓毕业设计】Android天气小作业源码(完整前后端+mysql+说明文档).zip
- 【安卓毕业设计】群养猪生长状态远程监测源码(完整前后端+mysql+说明文档).zip
- 【安卓毕业设计】奶牛管理新加功能源码(完整前后端+mysql+说明文档).zip
- C#.NET公墓陵园管理系统源码数据库 SQL2008源码类型 WebForm
- 作业这是作业文件这是作业
- 4353_135543959.html
- C#物联订单仓储综合管理系统源码 物联综合管理系统源码数据库 SQL2008源码类型 WebForm
- 2024年最新敏感词库(7万余条)
- java带财务进销存ERP管理系统源码数据库 MySQL源码类型 WebForm
- java制造业MES生产管理系统源码 MES源码数据库 MySQL源码类型 WebForm