### 关于ARM的21个常用概念 2 #### 11. ARM体系结构所支持的异常类型 ARM体系结构支持多种类型的异常处理机制,这些异常类型及其含义如下: - **复位**(优先级①):当处理器检测到有效的复位信号时触发此异常。复位异常会引导处理器跳转到复置异常处理程序开始执行(异常向量:0x0000,0000)。 - **未定义指令**(优先级⑥):处理器遇到无法识别或处理的指令时触发。通常用于软件仿真的实现(异常向量:0x0000,0004)。 - **软件中断(SWI)**(优先级⑥):由执行SWI指令引起,主要用于用户模式下的程序调用特权操作指令(如系统调用)。这种异常机制有助于实现高级系统功能(异常向量:0x0000,0008)。 - **指令预取中止**(优先级⑤):当处理器尝试预取不存在或不可访问地址上的指令时触发。这通常是因为地址非法或者权限不足导致(异常向量:0x0000,000C)。 - **数据中止**(优先级②):当处理器尝试访问不存在或不可访问的数据地址时触发。类似于指令预取中止,但针对数据访问(异常向量:0x0000,0010)。 - **IRQ(外部中断请求)**(优先级④):当外部中断请求有效并且处理器处于允许中断的状态(即CPSR中的I位为0)时触发。这种异常通常用于处理来自外设的中断请求(异常向量:0x0000,0018)。 - **FIQ(快速中断请求)**(优先级③):类似于IRQ,但具有更高的优先级,用于处理更紧急的中断请求(异常向量:0x0000,001C)。 #### 12. ARM体系结构的存储器格式 ARM体系结构支持两种主要的存储器格式: - **大端格式**:在这种格式下,一个字数据的高字节存储在较低的地址位置,而低字节存储在较高的地址位置。这种格式在某些嵌入式系统中非常常见。 - **小端格式**:与大端格式相反,在小端格式中,高地址存放数据的高字节,而低地址存放数据的低字节。现代大多数通用计算机采用这种格式。 #### 13. ARM寄存器总结 ARM架构中包含以下类型的寄存器: - **通用寄存器**(r0-r15):共有16个32位寄存器,其中: - **r15**(程序计数器PC):当前指令的地址。 - **r14**(链接寄存器LR):通常用于保存子程序的返回地址。 - **r13**(堆栈指针SP):指向当前堆栈的顶部。 - **当前程序状态寄存器**(CPSR):用于存储当前处理器的状态信息,包括条件码标志和其他控制位。 - **特定模式寄存器**:例如,在发生异常时,r13和r14会产生新的实例,如r13_IRQ和r14_IRQ,用于不同的处理器模式。 #### 14. 存储器重映射(Remap)的原因 存储器重映射在ARM体系结构中有几个重要的应用: - **解决FIQ处理程序中的存储器边界问题**:通过重映射可以使FIQ处理程序不再受到Flash存储器边界的影响。 - **减少SRAM和BootBlock向量的使用**:通过重映射减少了对SRAM和BootBlock向量段的依赖。 - **提供额外的空间来处理超出单字转移指令范围的跳转**:重映射允许程序在更大的地址空间内执行跳转。 #### 15. 使用LDR而非B指令跳转至异常向量表的原因 LDR指令相比B指令更适合用于跳转至异常向量表: - **全地址范围跳转能力**:LDR指令不受地址范围限制,可以跳转到任何地址,而B指令只能在前后32MB范围内跳转。 - **解决Remap问题**:在具有Remap功能的芯片上,使用B指令可能无法正确跳转到异常向量表的实际位置。 #### 16. 锁相环(PLL)的关键要点 锁相环(PLL)是用于调节处理器时钟频率的重要组件: - **初始化状态**:PLL在复位或进入掉电模式时会被关闭,并在唤醒后不会自动恢复设置。 - **软件使能**:PLL只能通过软件命令启用。 - **等待锁定**:PLL启动后需要等待锁定信号,之后才能将其输出连接到处理器时钟。 - **设置不当的风险**:不正确的PLL配置可能导致系统故障。 #### 17. ARM7与ARM9的主要区别 - **流水线结构**:ARM7采用了三级流水线结构,而ARM9采用了五级流水线结构。 - **内存管理单元**(MMU):ARM7不具备MMU,而ARM9具有MMU,这使得ARM9能够支持操作系统级别的内存管理和虚拟化。 - **性能比较**:ARM9提供了更高的时钟频率和更强的性能,采用哈佛结构分别处理指令和数据。 - **功耗优化**:ARM7TDMI在功耗方面表现出色,适合于电池供电设备。 #### 18. VIC的基本操作 向量中断控制器(VIC)是用于管理中断的关键组件: - **中断设置**:设置IRQ或FIQ中断,为IRQ中断分配优先级,并确定中断是否为向量中断。 - **中断允许**:通过设置相应的寄存器位,允许特定中断。 - **中断响应**:当发生IRQ中断时,可以通过读取向量地址寄存器来确定中断处理程序的位置,并跳转到相应的代码段。 - **退出中断**:通过向向量地址寄存器写入零值来通知VIC中断已经处理完成。 - **处理器模式切换**:发生中断时,处理器会切换到中断模式,并将相关寄存器映射到新的位置。 以上是关于ARM体系结构中一些关键概念的详细解释。这些概念对于理解ARM体系结构的基本原理和实现细节至关重要。
- 粉丝: 4
- 资源: 940
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 无锁异步化、事件驱动架构设计的 java netty 网络编程框架; 轻量级,无需依赖任何第三方中间件或数据库就能支持集群、分布式; 适用于网络游戏服务器、物联网、内部系统及各种需要长连接的场景
- 单通道H桥马达驱动器T1016H的技术参数与应用指南
- 全国各地级市GDP、土地流转和耕地面积数据-最新出炉.zip
- ARM Cortex-M0+微控制器 CW32F030x6/x8 数据手册解析与应用指导
- 1/2.55英寸CMOS图像传感器IMX362的技术特性与应用
- 使用TensorFlow实现花卉分类识别系统
- SSS1700C1-USB Headset Line-in Controller Datasheet-v1.1-20241119
- ISO 14229-1:2020(E)
- Java企业级开发中数据结构的理解与应用
- Nginx Windows版本 自用