ARM编程模式和7钟工作模式
2025-01-14 来源:cnblogs
一. ARM的基本设定
1.1. ARM 采用的是32位架构
1.2. ARM约定:
a. Byte : 8 bits
b. Halfword :16 bits (2 byte)
c. Word : 32 bits (4 byte)
1.3. 大部分ARM core 提供:
a. ARM 指令集(32-bit)
b. Thumb 指令集(16-bit )
c. Thumb2指令集(16 & 32bit)
二. ARM处理器工作模式
2.1. ARM 有7个基本工作模式:
User : 非特权模式,大部分任务执行在这种模式
FIQ : 当一个高优先级(fast) 中断产生时将会进入这种模式
IRQ : 当一个低优先级(normal) 中断产生时将会进入这种模式
Supervisor :当复位或软中断指令执行时将会进入这种模式
Abort : 当存取异常时将会进入这种模式
Undef : 当执行未定义指令时会进入这种模式
System : 使用和User模式相同寄存器集的特权模式
注:1.除User(用户模式)是Normal(普通模式)外,其他6种都是Privilege(特权模式)。
2. Privilege中除Sys模式外,其余5种为异常模式
3. 各种模式的切换,可以是程序员通过代码主动切换(通过写CPSR寄存器);也可以是CPU在某些情况下自动切换。
4. 各种模式下权限和可以访问的寄存器不同
三. ARM通用寄存器
3.1. ARM共有37个寄存器,都是32位长度

3.2. 不同模式下的寄存器分布

3.3. 寄存器说明
3.3.1. sp指针表示栈指针,是程序工作区。
3.3.2. lr用来做返回控制,用来存储返回值(函数调用返回值)。
3.3.3. pc表示程序控制寄存器,用来存储程序执行在哪。
3.3.4. CPSR程序状态寄存器

3.3.5. spsr是用来保存cpsr。(例如:当从USER转换到IRQ模式时,将USER的状态保存到IRQ的spsr中)
四. 异常处理机制机制
4.1. 什么是异常
4.1.1. 异常会打断正在执行的工作,并且一般我们希望异常处理完成后继续回来执行原来的工作
4.1.2. 中断是异常的一种。
4.2. 异常向量表
4.2.1. 所有的CPU都有异常向量表,这是CPU设计时就设定好的,是硬件决定的
4.2.2. 当异常发生时,CPU会自动动作(PC跳转到异常向量处处理异常,有时伴有一些辅助动作)
4.2.3. 异常向量表是硬件向软件提供的处理异常的支持
4.3. 异常处理流程
4.3.1. 当异常产生时, ARM core:
4.3.1.1. 拷贝 CPSR 到 SPSR_ 4.3.1.2. 设置适当的 CPSR 位 a. 改变处理器状态进入 ARM 态 b. 改变处理器模式进入相应的异常模式 c. 设置中断禁止位禁止相应中断 (如果需要) 4.3.1.3. 保存返回地址到 LR_ 4.3.1.4. 设置 PC 为相应的异常向量 4.3.2. 返回时, 异常处理需要: 4.3.2.1. 从 SPSR_ 4.3.2.2. 从LR_ Note: 1.这些操作只能在 ARM 态执行. 2. 以上说的是CPU设计时提供的异常向量表,一般成为一级向量表。有些CPU为了支持多个中断,还会提供二级中断向量表,处理思路类似于这里说的一级中断向量表。 参考《朱老师.1.2ARM裸机课件》
上一篇:INPUT输入子系统——按键
下一篇:arm初识
- 基于ExecuTorch与Arm SME2的端侧机器学习推理加速
- 深入解析Arm Neoverse计算平台的技术架构与性能优势
- 端侧AI爆发催生芯片设计新范式,Arm技术授权订阅模式为产业铺就“快车道”
- Arm 执行副总裁:尚未向合作伙伴提供适用于 Windows 操作系统的 GPU
- Arm 赋能机器人:产品落地的底层技术
- 行业评论 从工具到平台:如何化解跨架构时代的工程开发和管理难题
- Arm Flexible Access 扩容升级,赋能更多企业加速芯片开发
- Microchip推出PIC32CM PL10 MCU系列,进一步扩展其 Arm@ Cortex@-M0+产品组合
- 云开发者正加速向 Arm 架构迁移:构建面向 AI 时代的未来基础设施
- Arm 计算平台加持,联想车计算推动 L4 级自动驾驶出租车规模化落地
- 六大全新产品系列推出,MCX A微控制器家族迎来创新
- 意法半导体全新STM32C5系列,重新定义入门级微控制器性能与价值,赋能万千智能设备
- 模组复用与整机重测在SRRC、CCC、CTA/NAL认证中的实践操作指南
- 有源晶振与无源晶振的六大区别详解
- 英飞凌持续巩固全球微控制器市场领导地位
- 使用 Keil Studio for Visual Studio Code开发 STM32 设备
- 蓝牙信道探测技术原理与开发套件实践
- Microchip 推出生产就绪型全栈边缘 AI 解决方案,赋能MCU和MPU实现 智能实时决策
- 从控制到系统:TI利用边缘AI重塑嵌入式MCU的边界
- LoRa、LoRaWAN、NB-IoT与4G DTU技术对比及工业无线方案选型分析




