嵌入式基础(五)之ARM架构

专栏地址:嵌入式面经地址

1.什么是ARM架构?有什么特点?⭐⭐⭐

ARM架构是一种低功耗、高性能以及成本效益高的处理器架构,由ARM Holdings开发并广泛应用于移动设备、嵌入式系统和其他领域。它具有以下特点:

  1. 低功耗:ARM架构专注于低功耗设计,可延长电池寿命并减少能源消耗。它在使用功耗管理技术和优化设计方面表现出色。
  2. 强大的性能:尽管低功耗设计,ARM架构仍能提供强大的性能,多核处理器的设计使其适应多线程应用。
  3. 灵活性:ARM架构是可定制的,可以根据不同的需求进行配置,并且适用于各种应用,从移动设备到网络设备和汽车。
  4. 易于集成:ARM架构的处理器芯片可以与其他硬件和软件组件轻松集成,使其成为系统设计的理想选择。
  5. 跨平台兼容性:ARM架构具有广泛的兼容性,可以在不同的操作系统和平台上运行,例如Android、iOS、Windows等。

大部分嵌入式芯片使用的都是arm架构,下边是几种常见架构的对比:

芯片架构

特点与优势

应用领域

ARM

- 低功耗、高性能

- 灵活可定制

- 广泛兼容性

移动设备、嵌入式系统、物联网设备等

x86

- 高性能

- 生态系统成熟

- 处理复杂计算任务

PC、服务器等

MIPS

- 高性能和低功耗

- 嵌入式系统领域应用广泛

嵌入式系统、网络设备等

Power

- 强大的计算性能

- 可靠性高

高性能计算、服务器、超级计算机等

RISC-V

- 开放、可定制

- 逐渐获得关注

低功耗嵌入式、物联网设备等

2.ARM处理器的几种模式?各自都是什么类型?⭐⭐⭐⭐⭐

ARM处理器具有多种模式,每种模式都有其特定的功能和用途。下面是ARM处理器的几种常见模式及其类型:

  1. 用户模式(User mode):用户模式是ARM处理器的标准模式,用于运行普通应用程序,如操作系统的用户空间进程。
  2. 特权模式(Privileged mode):特权模式是ARM处理器的核心模式之一,也称为系统模式(System mode)。它提供了更高的特权级别,可以执行一些操作系统的关键任务和访问特权指令。
  3. 监视模式(Monitor mode):监视模式是一种特殊的特权模式,用于处理虚拟化和安全性方面的任务。它通常由虚拟化软件(如Hypervisor)使用。
  4. 快速中断请求模式(Fast Interrupt Request mode):快速中断请求模式是ARM处理器的一种特殊模式,用于处理紧急的中断请求,例如实时时钟或外部设备的中断。
  5. 中断模式(Interrupt mode):中断模式也称为IRQ模式,用于处理一般的中断请求。它允许ARM处理器在中断事件发生时切换到中断处理程序。
  6. 异常模式(Exception mode):异常模式允许ARM处理器在处理异常事件(如数据传输错误或访问权限错误)时切换到异常处理程序。
  7. 无状态模式(No mode):无状态模式指ARM处理器当前没有处于任何特定模式。这种模式可以用于节能或其他特殊需求。

模式

意义

类型

说明

用户模式(usr)

ARM处理器正常的程序执行状态

非特权模式

用于普通的应用程序执行

快速中断模式(FIQ)

处理高速数据传输或通道处理

特权模式

异常模式

外部中断模式(IRQ)

处理通用的中断请求

特权模式

异常模式

管理模式(svc)

操作系统使用的保护模式

特权模式

异常模式

数据访问中止模式(abt)

处理数据或指令预取中止的情况,用于虚拟存储及存储保护

特权模式

异常模式

系统模式(sys)

运行具有特权的操作系统任务

特权模式

普通模式

未定义指令中止模式(und)

处理未定义指令的情况,支持硬件协处理器的软件仿真

特权模式

异常模式

3.ARM处理器的模式怎么切换?⭐⭐⭐⭐⭐

  • 执行软中断(SWI)指令可以使处理器从用户模式切换到管理(Supervisor)模式。这通常由操作系统使用,用于执行特权级别的任务和系统功能。
  • 外部中断发生时,处理器会根据中断类型自动切换到IRQ(Interrupt Request)模式或FIQ(Fast Interrupt Request)模式,以处理相应的外部事件。
  • 在处理器执行过程中产生异常时,例如由于MMU保护引起的内存访问异常,处理器会切换到数据访问中止(Abort)模式。对于无效指令,处理器将会进入未定义指令中止(Undefined)模式,这些异常情况需要被处理和解决。
  • 最后,System模式是一种无法自动进入的模式,程序员需要编写指令来进入该模式。在一般情况下,操作系统在通过SWI指令进入Supervisor模式后,可能会进行特权级别的操作后,需要进入System模式执行某些特定的系统级任务。

4.ARM架构下有多少个寄存器?各自的作用类型?⭐⭐⭐⭐

  1. 通用寄存器 (R0 - R15):这些寄存器用于存储数据和地址,其中R0-R12为通用寄存器,R13为堆栈指针(SP),R14为链接寄存器(LR),R15为程序计数器(PC)。
  2. R13 寄存器,也称为堆栈指针寄存器(Stack Pointer,SP),用于存储当前堆栈顶部的地址。在函数调用时,参数和局部变量通常存储在堆栈中。通过调整SP寄存器的值,可以在堆栈上进行压栈(存储)和出栈(取出)操作。
  3. R14 寄存器,也称为链接寄存器(Link Register,LR),用于存储调用子程序时的返回地址。当一个函数被调用时,当前函数的返回地址会被保存在LR寄存器中。当子程序执行完毕后,通过将LR寄存器的值赋给PC寄存器,可以返回到调用函数的下一条指令继续执行。
  4. R15 寄存器,也称为程序计数器寄存器(Program Counter,PC),存储下一条要执行的指令的地址。PC寄存器是ARM架构中非常重要的寄存器,它指示了当前执行的指令的位置。当一条指令执行完毕后,PC寄存器会自动递增,指向下一条即将执行的指令。
  5. 程序状态寄存器 (CPSR或CPSR):存储当前处理器的状态信息,如当前模式、条件标志位、中断使能位等。
  6. SPSR (Saved Program Status Register):保存上一个模式下的程序状态寄存器的值。
  7. 控制寄存器 (Control Registers):用于处理器的控制和配置,如处理器模式切换、中断控制等。

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

c++/嵌入式面经专栏 文章被收录于专栏

BG双9,目前在某外企。打算把之前校招时做的笔记通过专栏发出来,本专栏适合于C/C++、嵌入式方向就业的同学,本篇面经总结数千篇面经的知识集合,实时更新全网最新的嵌入式/C++最新内容,囊括了C语言、C++、操作系统、计算机网络、嵌入式、算法与数据结构、数据库等一系列知识点,在我看来这些是求职者在面试中必须掌握的知识点。最后呢祝各位能找到自己合适的工作。。

全部评论
支持一下楼主更新,最近日常实习准备面试,开背。
3 回复 分享
发布于 2023-12-16 09:21 浙江
就这了吗?感觉有点少。
点赞 回复 分享
发布于 2024-09-29 09:59 四川
打卡
点赞 回复 分享
发布于 2024-07-14 08:53 四川
打卡
点赞 回复 分享
发布于 2024-05-11 09:59 内蒙古
Linux驱动相关的啥时候更新呀
点赞 回复 分享
发布于 2024-03-12 15:41 广东

相关推荐

牛客吹哨人:哨哥晚点统一更新到黑名单:能救一个是一个!26届毁意向毁约裁员黑名单https://www.nowcoder.com/discuss/1525833
点赞 评论 收藏
分享
评论
3
20
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务