ARM&Linux科谱
+ -

Cortex-A7 MPCore

2025-11-05 4 0

Cortex-A7 MPCore 支持在一个处理器上选配 1~4 个内核。
Cortex-A7 MPCore

Cortex-A系列的ARM在还来7种运行模式上增加了TruZone安全扩展模式。而后续的新的CPU又增加了Monitor模式,所以共有9种模式。

模式 描述
User(USR) 用户模式,非特权模式,大部分程序运行的时候就处于此模式。
FIQ 快速中断模式,进入 FIQ 中断异常
IRQ 一般中断模式。
Supervisor(SVC) 超级管理员模式,特权模式,供操作系统使用。
Monitor(MON) 监视模式?这个模式用于安全扩展模式。
Abort(ABT) 数据访问终止模式,用于虚拟存储以及存储保护。
Hyp(HYP) 超级监视模式?用于虚拟化扩展。
Undef(UND) 未定义指令终止模式。
System(SYS) 系统模式,用于运行特权级的操作系统任务

其中常见的就是用户模式和系统模式。

通用寄存器

9种模式下,其中R0~R7是通用寄存器,R8~R15在不同的模式下,访问时会有区别。
121315554240

  • R13(SP):堆栈指针寄存器
  • R14(LR):链接寄存器,即子程序返回寄存器,每种处理器模式使用 R14(LR)来存放当前子程序的返回地址或当异常发生以后,该异常模式对应的 R14寄存器被设置成该异常模式将要返回的地址,R14 也可以当作普通寄存器使用

  • R15(PC):程序计数器:ARM 处理器 3 级流水线:取指->译码->执行,这三级流水线循环执行,比如当前正在执行第一条指令的同时也对第二条指令进行译码,第三条指令也同时被取出存放在 R15(PC)中。我们喜欢以当前正在执行的指令作为参考点,也就是以第一条指令为参考点,那么 R15(PC)中存放的就是第三条指令,换句话说就是 R15(PC)总是指向当前正在执行的指令地址再加上 2 条指令的地址。对于 32 位的 ARM 处理器,每条指令是 4 个字节,所以

    R15 (PC)值 = 当前执行的程序位置 + 8 个字节。
    

程序状态寄存器

CPSR:是当前程序状态寄存器,该寄存器包含了条件标志位、中断禁止位、当前处理器模式标志等一些状态位以及一些控制位.所有的处理器模式都共用一个 CPSR 必然会导致冲突,为此,除了 User 和 Sys 这两个模式以外,其他 7 个模式每个都配备了一个专用的物理状态寄存器,叫做 SPSR(备份程序状态寄存器),当特定的异常中断发生时, SPSR 寄存器用来保存当前程序状
态寄存器(CPSR)的值,当异常退出以后可以用 SPSR 中保存的值来恢复 CPSR.

因为 User 和 Sys 这两个模式不是异常模式,所以并没有配备 SPSR,因此不能在 User 和 Sys 模式下访问 SPSR,会导致不可预知的结果。

121846401383

标志 含义 说明
N (负标志) 结果为负 1=结果为负;0=结果为正 (有符号数判断)
Z (零标志) 结果为零 1=结果为零;0=结果非零 (常用于比较相等)
C (进位标志) 进位/借位 加法:1=有进位 (无符号数上溢)
减法:1=无借位;0=有借位 (无符号数下溢)
V (溢出标志) 符号位溢出 1=结果溢出 (有符号数判断)
控制位 功能
I/F 中断开关 (1=禁止,0=使能)
T 指令集 (0=ARM,1=Thumb)
M[4:0] 处理器模式
10000 User 模式
10001 FIQ 模式
10010 IRQ 模式
10011 Supervisor (SVC) 模式
10110 Monitor (MON) 模式
10111 Abort (ABT) 模式
11010 Hyp (HYP) 模式
11011 Undef (UND) 模式
11111 System (SYS) 模式

0 篇笔记 写笔记

ARM9的启动方式及Bootloader的下载
下面详细说明 ARM9(以经典的 S3C2440 芯片为例)的两种主要启动方式、配置方法,以及在这些模式下下载 Bootloader 所使用的工具。S3C2440 的启动方式由 OM0 和 OM1 这两个引脚的电平状态决定。工作模式OM0OM1备注NOR Flash 启动......
Cortex-A7 MPCore
Cortex-A7 MPCore 支持在一个处理器上选配 1~4 个内核。Cortex-A系列的ARM在还来7种运行模式上增加了TruZone安全扩展模式。而后续的新的CPU又增加了Monitor模式,所以共有9种模式。模式描述User(USR) 用户模式,非特权模式,大部分......
交叉编译工具链arm-linux-gnueabihf-gcc
GCC ARM Linux GNUEABIHF 工具链详细介绍gcc-arm-linux-gnueabihf 是一个针对 ARM 架构的交叉编译工具链,专门用于在 x86/x86_64 主机上开发运行在 ARM Linux 系统上的应用程序。这个工具链名称中的各部分含义如下:gcc: GNU C......
arm-linux开发配置总结
工具下载ubuntu镜像 https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/交叉工具链的下载 https://snapshots.linaro.org/gnu-toolchain/安装软件sudo apt-get install net-t......
ARM&CPU架构
嵌入式Linux系统一般使用的是ARM架构。ARM架构版本与典型CPU 对照1. ARMv5 / ARMv5TE状态: 32位特点: 引入了增强的DSP指令(Thumb-EE)。这是早期功能手机和嵌入式设备的基石。典型CPU核心:ARM7、ARM9 系列核心经典设备: 最早的iPod、第一代......
关注公众号
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!