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

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号17 分钟前
vue学习四:Axios网络请求
前端·vue.js·学习
星幻元宇VR25 分钟前
VR科普行走平台适用哪些科普教育主题
科技·学习·安全·vr·虚拟现实
xinzheng新政1 小时前
Javascript 深入学习基础·4
javascript·学习·servlet
charlie1145141911 小时前
通用GUI编程技术——图形渲染实战(二十九)——Direct2D架构与资源体系:GPU加速2D渲染入门
开发语言·c++·学习·架构·图形渲染·win32
CheerWWW2 小时前
C++学习笔记——线程、计时器、多维数组、排序
c++·笔记·学习
克里斯蒂亚诺·罗纳尔达2 小时前
智能体学习16——学习与适应(Learning-and-Adaptation)-深入解读
深度学习·学习·机器学习
航Hang*2 小时前
VMware vSphere 云平台运维与管理基础——第5章:VMware vSphere 5.5 高级特性
运维·服务器·开发语言·windows·学习·虚拟化
新手小新2 小时前
C#学习笔记1-在VS CODE部署C#开发环境
笔记·学习·c#
徒 花2 小时前
HCIP学习04 STP----生成树协议
学习·hcip
speop2 小时前
TASK02 | Reasoning Kindom 符号的黎明——因果的第一次建模
学习