嵌入式:ARM的工作模式与寄存器组织
创始人
2024-04-20 13:07:36
0

文章目录

    • 特权模式
      • 处理器启动时的模式转换图
    • ARM的寄存器组织
      • ARM寄存器组成概述
      • ARM状态下的寄存器组织
      • Thumb状态下的寄存器组织

CPSR(当前程序状态寄存器)的低5位用于定义当前操作模式 , 如图示

特权模式

除用户模式外的其他6种模式称为特权模式。 特权模式中除系统模式以外的5种模式又称为异常模式,即

  • FIQ(Fast Interrupt Request)
  • IRQ(Interrupt ReQuest)
  • SVC(Supervisor)
  • 中止(Abort)
  • 未定义(Undefined)

大多数应用程序在用户模式下执行,当处理器工作在用户模式时,正在执行的程序不能访问某些被保护的系统资源,也不能改变模式,除非异常发生,这允许操作系统来控制系统资源的使用。

当特定的异常出现时,进入相应的模式,每种模式都有某些附加的寄存器,以避免异常出现时,用户模式的状态不可靠。

不能由任何异常模式进入系统模式,它与用户模式有完全相同的寄存器,并且它是特权模式,不受任何用户模式的限制。它供需要访问系统资源的操作系统任务使用,但避免了使用与异常模式有关的附加寄存器,这就使得当任何异常出现时,都不会使任务的状态不可靠。

处理器启动时的模式转换图

ARM的寄存器组织

ARM寄存器组成概述

ARM处理器总共有37个寄存器,可以分为以下两类寄存器

31个通用寄存器(包括程序计数器PC)

  • R0~R15(PC);
  • R13_svc、R14_svc;
  • R13_abt、R14_abt;
  • R13_und、R14_und;
  • R13_irq、R14_irq;
  • R8_frq-R14_frq。

6个状态寄存器

  • CPSR;SPSR_svc、SPSR_abt、SPSR_und、SPSR_irq和SPSR_fiq

ARM状态下的寄存器组织

  1. ARM状态的寄存器简介

    ARM状态下的寄存器组织

  1. ARM状态的通用寄存器

    不分组寄存器(The unbanked registers):R0~R7

    分组寄存器(The banked registers):R8~R14

    程序计数器:R15(PC)

    不分组寄存器R0~R7

    R0~R7是不分组寄存器。这意味着在所有处理器模式下,它们每一个都访问的是同一个物理寄存器。它们是真正并且在每种状态下都统一的通用寄存器。

    未分组寄存器没有被系统用于特别的用途,任何可采用通用寄存器的应用场合都可以使用未分组寄存器,但必须注意对同一寄存器在不同模式下使用时的数据保护

    分组寄存器R8-R14

    • 分组寄存器R8-R12
      FIQ模式分组寄存器R8~R12
      FIQ以外的分组寄存器R8~R12
    • 分组寄存器R13、R14
      寄存器R13通常用做堆栈指针SP
      寄存器R14用作子程序链接寄存器(Link Register-LR),也称为LR

    程序计数器R15

    • 寄存器R15被用作程序计数器,也称为PC
    • R15值的改变将引起程序执行顺序的变化,这有可能引起程序执行中出现一些不可预料的结果
    • ARM处理器采用多级流水线技术,因此保存在R15的程序地址并不是当前指令的地址
    • 一些指令对于R15的用法有一些特殊的要求
  2. ARM程序状态寄存器

    • 所有处理器模式下都可以访问当前的程序状态寄存器CPSR。CPSR包含条件码标志、中断禁止位、当前处理器模式以及其它状态和控制信息。
    • 在每种异常模式下都有一个对应的物理寄存器——程序状态保存寄存器SPSR。当异常出现时,SPSR用于保存CPSR的状态,以便异常返回后恢复异常发生时的工作状态。
    • CPSR和SPSR的格式

Thumb状态下的寄存器组织

Thumb状态下的寄存器集是ARM状态下寄存器集的子集。程序员可以直接访问8个通用的寄存器(R0~R7),程序计数器PC、堆栈指针SP、连接寄存器LR和当前状态寄存器CPSP。每一种特权模式都各有一组SP,LR和SPSR。


参考文献:

孟祥莲.嵌入式系统原理及应用教程(第2版)[M].北京:清华大学出版社,2017.

相关内容

热门资讯

鸿蒙怎样还原安卓系统,系统切换... 你有没有想过,鸿蒙系统竟然能还原安卓系统?这听起来是不是有点像魔法一样神奇?没错,今天就要带你一探究...
电脑安卓转苹果系统,系统迁移攻... 你有没有想过,有一天你的安卓手机突然变成了苹果的忠实粉丝,想要跳槽到iOS的阵营呢?这可不是什么天方...
安卓xp系统下载地址,轻松获取... 你有没有想过,手机系统也能穿越时空?没错,今天我要给你揭秘的就是这样一个神奇的存在——安卓XP系统。...
安卓系统怎么清理相册,安卓系统... 手机里的相册是不是越来越臃肿了?每次打开都感觉像是在翻山越岭,找一张照片都要费老鼻子劲。别急,今天就...
安卓系统安装ios转移,轻松实... 你有没有想过,手机系统之间的转换竟然也能如此神奇?没错,今天就要来聊聊安卓系统安装iOS转移这个话题...
安卓系统与ios系统的优势,系... 你有没有想过,为什么你的手机里装的是安卓系统而不是苹果的iOS系统呢?或者反过来,为什么你的朋友用的...
安卓系统游戏如何升级,轻松实现... 亲爱的安卓玩家们,你是否也和我一样,对安卓系统游戏升级这件事充满了好奇和期待呢?每次游戏更新,都仿佛...
安卓系统蛋仔派对,安卓系统下的... 你有没有发现,最近你的手机里多了一个超级好玩的游戏?没错,就是安卓系统上的“蛋仔派对”!这款游戏可是...
坚果3安卓原生系统,深度体验原... 你有没有听说过坚果3这款手机?它可是最近在数码圈里火得一塌糊涂呢!今天,我就要来给你详细介绍一下这款...
安卓子系统点不开,排查与解决指... 最近是不是你也遇到了安卓子系统点不开的烦恼?这可真是让人头疼啊!别急,今天就来给你详细解析一下这个问...
安卓系统经常误删文件,如何有效... 你有没有遇到过这种情况?手机里的文件突然不见了,找来找去,怎么也找不到。别急,这可能是安卓系统的小调...
安卓51系统如何破解,轻松解锁... 安卓51系统如何破解——探索未知的技术边界在数字化时代,手机已经成为我们生活中不可或缺的一部分。而安...
安卓系统怎么换回主题,安卓系统... 亲爱的手机控们,你是不是也和我一样,对安卓系统的主题换换换乐此不疲呢?不过,有时候换着换着,突然发现...
黑莓安卓系统 太垃圾,令人失望... 你有没有用过黑莓的安卓系统?别告诉我你没有,因为现在这个系统真的是太垃圾了!是的,你没听错,就是那个...
修改安卓系统权限代码,安卓系统... 你有没有想过,你的安卓手机里那些神秘的系统权限代码?它们就像隐藏在手机里的秘密通道,有时候让你觉得既...
虚拟大师安卓系统教程,教程详解... 你有没有想过,手机里的世界可以变得更加神奇?今天,就让我带你一起探索虚拟大师安卓系统的奥秘吧!想象你...
基于安卓系统个人博客,轻松构建... 你有没有想过,在这个信息爆炸的时代,拥有一片属于自己的网络小天地是多么酷的事情啊!想象每天都能在这里...
安卓怎么传到苹果系统,从安卓到... 你是不是也有过这样的烦恼:手机里存了好多好用的安卓应用,可是一换到苹果系统,就发现这些宝贝们都不见了...
安卓改系统字体app,安卓系统... 你有没有想过,手机上的字体也能变得个性十足?没错,就是那个安卓改系统字体app,它可是让手机界面焕然...
安卓系统重启密码错误,破解与预... 手机突然重启了,屏幕上竟然出现了密码输入的界面!这可怎么办?别急,让我来帮你一步步解决这个安卓系统重...