[ARM入门]ARM模式及其切换、异常

ARM技术特征

  • ARM处理器有如下特点
    • 体积小、功耗低、成本低、性能高
    • 支持Thumb(16位)/ARM(32位)双指令集,能很好地兼容8位/16位器件
    • 大量使用寄存器,指令执行速度更快
    • 大多数数据操作都在寄存器中完成
    • 寻址方式灵活简单,执行效率高
    • 指令长度固定

ARM的基本数据类型

ARM采用的是32位架构,ARM的基本数据类型有以下三种

  • Byte:字节,8bit
  • Halfword:半字,16bit(半字必须与2字节边界对齐)
  • word:字,32bit(字必须与4字节边界对齐)

存储器可以看作是序号为0-2^32-1的线性字节阵列,每一个字节都有唯一的地址

ARM处理器工作模式

Cortex-A系列的ARM处理器工作模式有8种:

  • 用户模式

    用户模式是用户程序的工作模式

    他运行在OS的用户态,没有权限去操作其他硬件资源,只能执行处理自己的数据

    也不能切换到其他模式下,想要访问硬件资源或切换到其他模式只能通过软中断(SWI)或产生异常

  • 系统模式

    系统模式是特权模式,不受用户模式的限制

    用户模式和系统模式共用一套寄存器

    操作系统在该模式下可以方便的访问用户模式的寄存器,而且操作系统的一些特权任务可与使用这个模式访问一些受控的资源

  • 一般中断模式

    一般中断模式也叫普通中断模式,用于处理一般的中断请求

    通常在硬件产生中断信号之后自动进入该模式

    该模式为特权模式,可以自由访问系统硬件资源

  • 快速中断模式

    是相对于一般中断模式而言的,它是用来处理对时间要求比较紧急的中断请求

    主要用于高速数据传输及通道处理中

  • 管理模式(SVC)

    是CPU上电后默认模式

    因此在该模式下主要用来做系统的初始化

    软中断处理也在该模式下,当用户模式下的用户程序请求使用硬件资源时通过软件中断进入该模式

  • 中止模式

    用于支持虚拟内存或存储器保护

    当用户程序访问非法地址,没有权限读取的内存地址时,会进入该模式

    linux下编程时经常出现的segment fault通常都是在该模式下抛出返回的

  • 未定义模式

    用于支持硬件协处理器的软件方针,CPU在指令的译码阶段不能识别该指令操作时,会进入未定义模式

  • Monitor

    是为了安全而扩展出的用于执行安全监控代码的模式

    也是一种特权模式

模式切换

ARM微处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变

应用程序运行在用户模式下

当处理器运行在用户模式下时,某些被保护的系统资源是不能被访问的

异常(Exception)

指由处理器执行指令导致原来运行程序的种植

异常与指令运行相关,是CPU执行程序产生的,是同步的,可分为精确异常和非精确异常

异常处理遵守严格的程序顺序,不能嵌套,只有当第一个异常处理完并返回后才能处理后续的异常

  • ARM中的异常源
  • 异常源与模式关系
    • 快速中断请求异常进入快速中断模式,支持高速数传输及通道处理(FIQ异常响应时进入此模式)
    • 中断请求异常进入中断模式,用于通用中断处理
    • 欲取指中止,数据中止异常进入中止模式,用于支持虚拟内存和/或存储器保护
    • 未定义指令异常进入未定义模式
    • 支持硬件协处理器的软件仿真软件中断(swi),复位异常(reset)进入管理模式,操作系统保护代码
相关推荐
zlinear数据采集卡1 小时前
FRAM铁电存储器原理深度解析:D223校准参数的“永久保险箱“
arm开发·人工智能·stm32·单片机·fpga开发·开源
喜欢吃燃面1 天前
Linux网络编程深度解析:从Socket API到自定义协议设计
linux·网络·arm开发
rcms152702692181 天前
DS200ADCIH1ADB 输入 / 输出板
arm开发
又见情义1 天前
RK3568 Android 13 移植 EC20-CE 4G 模块全记录
android·arm开发·驱动开发
Black_Rock_br2 天前
ARM服务器固件FVP仿真开发流程深度解析实战指南
arm开发·人工智能·嵌入式硬件·硬件工程
又见情义2 天前
RK3568 Android 13驱动适配-WiFi&BT模块(RTL8822CS)
android·arm开发·驱动开发
DevHub2 天前
STM32 USB HID 教程:TinyUSB 实现键盘设备,从描述符到枚举
arm开发·stm32·单片机·嵌入式硬件·mcu·计算机外设
蓝速科技2 天前
蓝速鸿蒙信创终端长效流畅性深度评测
arm开发·华为·harmonyos
zlinear数据采集卡2 天前
数据采集卡从入门到精通(46):趋势展望——软件定义硬件、AI分析与开源生态
arm开发·stm32·单片机·嵌入式硬件·fpga开发·开源
咯哦哦哦哦2 天前
linux so库(arm)对比分析
linux·运维·arm开发