ARMv7-R Cortex-R 编程向导手册学习

7 篇文章 2 订阅
2 篇文章 2 订阅
/* TODO 写在前面:
 * 纵览整本规范,ARMv7-R 系列处理器可以看作简化版的 ARMv7-A 系列处理器。
 * 换句话说,ARMv7-A 是配置更灵活与复杂的 ARMv7-R 系列处理器。
 * 
 * R 系列处理器为实时功能提供硬件上的支持。
 */

第一章 介绍

Cortex-R 系列处理器对于临界代码(时间要求很严格的代码)的执行具有相当的优势,比如 Cortex-R 存在 TCM 内存,可以让 CPU 立即访问内存,类似于 cache, 但与 cache 不同的是,TCM内存对应真实的内存地址映射
Cortex-R5 与 Cortex-R7 存在特定的端口来访问时间临界的外设,这些专用的端口意味着访问这些外设时不会与低优先级的内存访问竞争(访问这些外设的寄存器地址时,不通过内存总线,而是专门的地址总线)。
Cortex-R CPU 也可以为硬实时应用提供低中断延迟的中断。

第二章 ARM 架构处理器

ARM 架构手册不会指定 cache 的大小以及单独指令的执行周期。

  • Cortex-A系列处理器是支持虚拟内存系统 MMU 的高性能处理器。
  • Cortex-R 系列处理器是用于要求时间确定且拥有低中断延迟的 RTOS,处理器使用 MPU 来保护内存区域,而不支持 MMU。
  • Cortex-M 系列处理器是低成本处理器,同样拥有低中断延迟,与 A/R 系列处理器不同, M系列处理器使用不同的异常处理模型,且只支持 Thumb 指令集。

第三章 处理器模式与寄存器

ARMv7-R 架构是模型架构(与 ARMv7-A类似, 但有一些不同),存在6个特权模式与一个user模式:
在这里插入图片描述
ARMv7-R 定义了两个特权等级:

  • PL0 : 非特权等级,对应 user 模式。
  • PL1: 特权等级,除 user 模式外的其他模式。
    模式与特权等级的对应关系如下:在这里插入图片描述
    当前处理器模式与执行状态可以通过 cpsr 寄存器查看,也可以通过写 cpsr 寄存器来改变当前处理器模式与状态,注意,只有特权代码可以访问cpsr。

3.1 寄存器

与ARMv7-A 类似,ARMv7-R 提供 16 个通用目的寄存器:R0-R15, 也提供了当前程序状态寄存器:CPSR,以及在特权模式下,提供一个备份程序状态寄存器:SPSR,用于保存之前执行模式下的 CPSR 的拷贝。
在这里插入图片描述
Banking: 不同模式下,同一个寄存器名对应不同的物理地址。
不同模式下,Banking 寄存器如下:
在这里插入图片描述
在所有模式下,访问 R0-R7 与 R15 都对应同一个物理地址。

3.1.1 程序状态寄存器 cpsr

CPSR用于存储:

  • 算数逻辑标志位
  • 当前处理器模式
  • 中断失能标志位
  • 当前处理器状态,ARM/Thumb 等
  • 数据端序,大端与小端
  • IT(if-then) 模块执行状态位
    CPSR 位定义如下:
    在这里插入图片描述
    CPSR 与 SPSR 通过 MSR/MRS 指令访问。
3.1.2 协处理器 cp15

cp15 是处理器内部集成的一个模块,用于系统功能控制。
cp15 包含16个寄存器组:c0 - c15。

协处理器寄存器组功能描述
C0MIDR, MPIDR CPU id 号
C1SCTLR, ACTLR, CPACR 系统功能控制
C5/c6DFSR/IFSR, DFAR/IFAR, MPU 错误状态与错误地址,以及 MPU 控制
C7Cache 维护操作
C9Cpu 性能监控
C13线程 id 寄存器
C15CBAR 存储 gic 基地址

所有的协处理器通过 MCR/MRC 指令访问。

3.1.3 系统控制寄存器 SCTLR

SCTLR 寄存器通过 cp15 访问,提供:

  • MPU 内存控制
  • 处理器功能控制,比如 I/D cache 使能
  • 对于 cpu 实现的功能提供 CPU 状态信息

SCTLR 寄存器位定义如下:
在这里插入图片描述

第四章 汇编语言介绍

汇编语言是底层的编程语言,与机器码一一对应,学习汇编语言可以让我们能够编写启动代码,能让我们更有效率的调试 C 代码。

(与 ARMv7-A 汇编类似,后续阅读规范)

第五章 统一的汇编语言指令

这一章会对常用的汇编指令做一个介绍,比如:

  • 数据处理操作指令,比如算术指令
  • 内存访问指令
  • 跳转指令
  • 其他指令,如:协处理器访问指令,异常生成指令,CPSR/SPSR 访问指令

(与 ARMv7-A 汇编类似,后续阅读规范)

第六章 浮点

ARMv7-R 支持vfpv3

第七章 cache 与 write buffer

Cache 是cpu 内部硬件控制的一块 ram, 对软件不可见。
Write buffer 同样也是一片 ram,让cpu 核不需要等待写操作完成。

7.1 cache 缺点

Cache 的缺点如下:

  • 程序执行时间是不确定的,因为可能伴随 cache 的分配与替换。
  • 存在 cache 中的数据与外部内存不一致的情况,这是cache 一致性的问题。
  • 在 cpu 复位后,cache 中的数据是不确定的,所以一般我们需要在启动代码中使无效 Dcache,保证此时cache 内容是干净的。

7.2 内存架构

ARMv7-A 通用内存架构如下:
在这里插入图片描述
一般 cpu 存在两级 cache:

  • L1 Cache 是每一个 cpu 核独有的,每一个核都有自己的L1 cache, 而 L1 cache 又分为 I-cache 与 D-cache。
  • L2 cache 是CPU 上所有核共享的。

外部内存是最低层的存储设备,如果 cache 中没有我们要访问的数据,那么才会通过总线访问内存。

7.3 cache 架构

7.3.1 cache 术语

在这里插入图片描述

cache 术语描述
linecache 最小加载单元,加载一片连续的word
index内存地址的一部分,用于确定当前的内存地址属于哪一个 cache line
wayway 是 cache 的细分,每一个 way 都是相同的大小,且具有相同范围的 index
set不同way 中,具有相同 index 的cache line 被称作属于同一个 set
tag是内存地址的最高有效位,每一个 cache line 都会存储它对应的 tag

注:只要理解了上述的 cache 术语,手册后续的cache 章节,理解起来就轻松多了。包括cache 策略以及cache 维护操作。

第八章 TCM

TCM 内存可以为 cpu 提供低延迟的内存访问,而且没有 cache 的不确定性。
(没有 cache 的分配与替换,因为 TCM 可以映射到内存,然后通过内存地址访问)

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《ARM架构参考手册armv7-a和armv7-r版.pdf》是一本关于ARM架构的参考手册ARM架构是一种广泛应用于嵌入式系统和移动设备的处理器架构。该手册分为armv7-a版和armv7-r版两个版本。 armv7-a版是面向应用处理器的版本,主要用于移动设备、平板电脑、智能电视等设备。它提供了丰富的功能和指令集,支持多核处理和高性能计算,能够满足复杂应用的需求。该手册详细介绍了armv7-a架构的特点、寄存器、指令集以及内存管理等内容,为开发者提供了系统级的技术支持。 armv7-r版则是专门为实时应用处理器设计的版本,主要用于汽车电子、工业自动化、医疗设备等领域。相比于armv7-a版,它更注重实时性和可靠性,提供了面向实时应用的特殊指令集和硬件特性。该手册详细介绍了armv7-r架构的特点、寄存器、指令集以及实时性相关的特性,为开发者提供了针对实时应用的技术指导。 总之,该手册ARM架构的权威参考资料,旨在帮助开发者理解和应用armv7-a和armv7-r架构,以提升系统性能和实时性。无论是开发应用还是实时系统,对ARM架构感兴趣的开发者都可以从该手册中获得详细的技术指导。 ### 回答2: 《ARM架构参考手册ARMv7-A和ARMv7-R Edition.pdf》是一本关于ARM架构的参考手册ARM架构是一种广泛应用于嵌入式系统和移动设备的处理器架构。 这本手册旨在提供有关ARMv7-A和ARMv7-R两个版本的详细信息。ARMv7-A是应用程序处理器的主要版本,而ARMv7-R是实时处理器版本。手册介绍了这两个版本的架构特性、指令集、寄存器和系统级特性。 手册的内容包括了ARMv7-A和ARMv7-R的各个模块的详细说明,如处理器核心、系统控制和调试接口等。此外,手册还讨论了架构的安全特性,包括访问权限和异常处理。 ARM架构的特点之一是其指令集的精简性和高效性,手册深入介绍了各种指令的功能和使用方法,以及指令的执行过程和相关的寄存器操作。 另外,手册还提供了有关如何开发软件和编写代码以实现ARMv7-A和ARMv7-R架构的最佳实践指南。这些指南涵盖了编程规范、编译器优化和调试技术等方面的建议,帮助开发人员更好地利用ARM架构的性能和功能。 总之,《ARM架构参考手册ARMv7-A和ARMv7-R Edition.pdf》是一本权威的参考资料,提供了关于ARMv7-A和ARMv7-R架构的详细信息,对于开发者和研究人员来说是一本宝贵的资源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值