嵌入式基础(五)之ARM架构
专栏地址:嵌入式面经地址
1.什么是ARM架构?有什么特点?⭐⭐⭐
ARM架构是一种低功耗、高性能以及成本效益高的处理器架构,由ARM Holdings开发并广泛应用于移动设备、嵌入式系统和其他领域。它具有以下特点:
- 低功耗:ARM架构专注于低功耗设计,可延长电池寿命并减少能源消耗。它在使用功耗管理技术和优化设计方面表现出色。
- 强大的性能:尽管低功耗设计,ARM架构仍能提供强大的性能,多核处理器的设计使其适应多线程应用。
- 灵活性:ARM架构是可定制的,可以根据不同的需求进行配置,并且适用于各种应用,从移动设备到网络设备和汽车。
- 易于集成:ARM架构的处理器芯片可以与其他硬件和软件组件轻松集成,使其成为系统设计的理想选择。
- 跨平台兼容性:ARM架构具有广泛的兼容性,可以在不同的操作系统和平台上运行,例如Android、iOS、Windows等。
大部分嵌入式芯片使用的都是arm架构,下边是几种常见架构的对比:
芯片架构 |
特点与优势 |
应用领域 |
ARM |
- 低功耗、高性能 - 灵活可定制 - 广泛兼容性 |
移动设备、嵌入式系统、物联网设备等 |
x86 |
- 高性能 - 生态系统成熟 - 处理复杂计算任务 |
PC、服务器等 |
MIPS |
- 高性能和低功耗 - 嵌入式系统领域应用广泛 |
嵌入式系统、网络设备等 |
Power |
- 强大的计算性能 - 可靠性高 |
高性能计算、服务器、超级计算机等 |
RISC-V |
- 开放、可定制 - 逐渐获得关注 |
低功耗嵌入式、物联网设备等 |
2.ARM处理器的几种模式?各自都是什么类型?⭐⭐⭐⭐⭐
ARM处理器具有多种模式,每种模式都有其特定的功能和用途。下面是ARM处理器的几种常见模式及其类型:
- 用户模式(User mode):用户模式是ARM处理器的标准模式,用于运行普通应用程序,如操作系统的用户空间进程。
- 特权模式(Privileged mode):特权模式是ARM处理器的核心模式之一,也称为系统模式(System mode)。它提供了更高的特权级别,可以执行一些操作系统的关键任务和访问特权指令。
- 监视模式(Monitor mode):监视模式是一种特殊的特权模式,用于处理虚拟化和安全性方面的任务。它通常由虚拟化软件(如Hypervisor)使用。
- 快速中断请求模式(Fast Interrupt Request mode):快速中断请求模式是ARM处理器的一种特殊模式,用于处理紧急的中断请求,例如实时时钟或外部设备的中断。
- 中断模式(Interrupt mode):中断模式也称为IRQ模式,用于处理一般的中断请求。它允许ARM处理器在中断事件发生时切换到中断处理程序。
- 异常模式(Exception mode):异常模式允许ARM处理器在处理异常事件(如数据传输错误或访问权限错误)时切换到异常处理程序。
- 无状态模式(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架构下有多少个寄存器?各自的作用类型?⭐⭐⭐⭐
- 通用寄存器 (R0 - R15):这些寄存器用于存储数据和地址,其中R0-R12为通用寄存器,R13为堆栈指针(SP),R14为链接寄存器(LR),R15为程序计数器(PC)。
- R13 寄存器,也称为堆栈指针寄存器(Stack Pointer,SP),用于存储当前堆栈顶部的地址。在函数调用时,参数和局部变量通常存储在堆栈中。通过调整SP寄存器的值,可以在堆栈上进行压栈(存储)和出栈(取出)操作。
- R14 寄存器,也称为链接寄存器(Link Register,LR),用于存储调用子程序时的返回地址。当一个函数被调用时,当前函数的返回地址会被保存在LR寄存器中。当子程序执行完毕后,通过将LR寄存器的值赋给PC寄存器,可以返回到调用函数的下一条指令继续执行。
- R15 寄存器,也称为程序计数器寄存器(Program Counter,PC),存储下一条要执行的指令的地址。PC寄存器是ARM架构中非常重要的寄存器,它指示了当前执行的指令的位置。当一条指令执行完毕后,PC寄存器会自动递增,指向下一条即将执行的指令。
- 程序状态寄存器 (CPSR或CPSR):存储当前处理器的状态信息,如当前模式、条件标志位、中断使能位等。
- SPSR (Saved Program Status Register):保存上一个模式下的程序状态寄存器的值。
- 控制寄存器 (Control Registers):用于处理器的控制和配置,如处理器模式切换、中断控制等。
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
BG双9,目前在某外企。打算把之前校招时做的笔记通过专栏发出来,本专栏适合于C/C++、嵌入式方向就业的同学,本篇面经总结数千篇面经的知识集合,实时更新全网最新的嵌入式/C++最新内容,囊括了C语言、C++、操作系统、计算机网络、嵌入式、算法与数据结构、数据库等一系列知识点,在我看来这些是求职者在面试中必须掌握的知识点。最后呢祝各位能找到自己合适的工作。。

查看12道真题和解析
上海得物信息集团有限公司公司福利 1164人发布