1、Cortex-A7 MPCore 简介
Cortex-A7 MPcore 处理器支持 1~4 核,通常是和 Cortex-A15 组成 big.LITTLE 架构的,
Cortex-A15 作为大核负责高性能运算,比如玩游戏啥的, Cortex-A7 负责普通应用,因为 CortexA7 省电。 Cortex-A7 本身性能也不弱,不要看它叫做 Cortex-A7 但是它可是比 Cortex-A8 性能
要强大,而且更省电。 ARM 官网对于 Cortex-A7 的说明如下:
“在 28nm 工艺下, Cortex-A7 可以运行在 1.2~1.6GHz,并且单核面积不大于 0.45mm2(含
有浮点单元、 NEON 和 32KB 的 L1 缓存),在典型场景下功耗小于 100mW, 这使得它非常适
合对功耗要求严格的移动设备,这意味着 Cortex-A7 在获得与 Cortex-A9 相似性能的情况下,
其功耗更低”。
2、Cortex-A 处理器运行模型
ARM 处理器有 7 中运行模型: User、 FIQ、 IRQ、 Supervisor(SVC)、 Abort、 Undef
和 System,其中 User 是非特权模式,其余 6 中都是特权模式。但新的 Cortex-A 架构加入了
TrustZone 安全扩展,所以就新加了一种运行模式: Monitor,新的处理器架构还支持虚拟化扩
展,因此又加入了另一个运行模式: Hyp,所以 Cortex-A7 处理器有 9 种处理模式,如表 6.2.1
所示:
除了 User(USR)用户模式以外,其它 8 种运行模式都是特权模式。这几个
运行模式可以通过软件进行任意切换,也可以通过中断或者异常来进行切换。大多数的程序都
运行在用户模式,用户模式下是不能访问系统所有资源的,有些资源是受限的,要想访问这些
受限的资源就必须进行模式切换。但是用户模式是不能直接进行切换的,用户模式下需要借助
异常来完成模式切换,当要切换模式的时候,应用程序可以产生异常,在异常的处理过程中完
成处理器模式切换。
当中断或者异常发生以后,处理器就会进入到相应的异常模式种,每一种模式都有一组寄
存器供异常处理程序使用,这样的目的是为了保证在进入异常模式以后,用户模式下的寄存器
不会被破坏。
如果学过 STM32 和 UCOS、 FreeRTOS 就会知道, STM32 只有两种运行模式,特权模式和
非特权模式,但是 Cortex-A 就有 9 种运行模式。
3、Cortex-A 寄存器组
ARM 架构提供了 16 个 32 位的通用寄存器(R0~R15)供软件使用,前 15 个(R0~R14)可以用
作通用的数据存储, R15 是程序计数器 PC,用来保存将要执行的指令。 ARM 还提供了一个当
前程序状态寄存器 CPSR 和一个备份程序状态寄存器 SPSR, SPSR 寄存器就是 CPSR 寄存器的
备份。这 18 个寄存器
Cortex-A7 有 9 种运行模式,每一种运行模式都有一组与之对应的寄存
器组。每一种模式可见的寄存器包括 15 个通用寄存器(R0~R14)、一两个程序状态寄存器和一个
程序计数器 PC。在这些寄存器中,有些是所有模式所共用的同一个物理寄存器,有一些是各模
式自己所独立拥有的