嵌入式学习---(硬件)

1、ARM 内核工作模式有哪些,分别是在什么情况下被切换?

ARM内核共有7种。

模式 主要触发条件
User 从任何异常处理返回。
FIQ 发生高优先级硬件中断。
IRQ 发生普通硬件中断。
Supervisor (SVC) 复位 、执行SVC/SWI指令
Abort 内存访问失败(指令预取或数据访问)。
Undefined CPU遇到无法识别的指令。
System 通过软件修改CPSR(从其他特权模式切换而来)。

2、异常向量表是什么?

这块区域中存放着跳转指令 (或者直接是地址值),这些指令负责在特定的异常中断 发生时,引导处理器跳转到对应的异常处理程序的入口地址。

3、什么是立即数?如何判断某数是非法是12位立即数?

判断方法:将其转化为二进制立即数是可以通过右移偶数位操作,可以将前三个字节置零,最后一个字节是存放8字节立即数;

4、b,bl,bx指令的区别是什么?

b是无条件跳转

bl是函数调用,可以将当前位置的pc存放在lr中,便于函数调用后返回(保护和恢复现场)、

bx是跳转到指定寄存器,但是在跳转前,会通过判断该寄存器的最低位,来改变寄存器的状态,如果是1,则为Thumb状态;如果是0,则为arm状态

5、ARM内核采用的栈是哪种栈?

"ARM内核支持多种栈,但现代操作系统在ARM上几乎无一例外地使用满递减栈,并且为每种处理器模式都维护了独立的栈。"

相关推荐
寒月小酒7 小时前
第三章 索引构建(2-all -in-rag学习)
学习
天国梦7 小时前
中学生居家英语听力训练深度解析:从核心痛点到AI赋能的全链路方案
人工智能·学习
胡渠洋11 小时前
postman学习
学习·测试工具·postman
Amazing_Cacao12 小时前
CFCA精品可可产区风土解析(美洲):无情打破风味堆叠假象,建立时间轴上的层次动态阅读系统
学习
六点_dn13 小时前
Linux学习笔记-shell运算符
linux·笔记·学习
其实防守也摸鱼13 小时前
渗透--损坏的对象级别鉴权漏洞(Broken Object Level Authorization, BOLA)
大数据·网络·数据库·学习·tcp/ip·安全·安全威胁分析
念雨思13 小时前
信用卡权益对比:基于HarmonyOS + ArkTS的AI智能金融助手开发实践
人工智能·学习·华为·金融·harmonyos·鸿蒙
铅笔侠_小龙虾14 小时前
Rust 学习(2)-变量、常量与 shadowing
学习·算法·rust
it小生010114 小时前
从底层思维到高效行动,顶尖人才进阶核心修炼指南
学习·学习方法
恣逍信点14 小时前
《凌微经》通俗解读——哲学第一因
学习·职场和发展·创业创新·学习方法·业界资讯·交友·哲学