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

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上几乎无一例外地使用满递减栈,并且为每种处理器模式都维护了独立的栈。"

相关推荐
叼烟扛炮13 小时前
[Git 实战] 学习笔记:从生成 SSH 密钥到解决 TortoiseGit 推送报错全指南
linux·运维·笔记·git·学习
蒸蒸yyyyzwd14 小时前
学习笔记 八股手撕
笔记·学习
留岁16 小时前
大模型推理部署 · 学习文档
学习
小李不想当小白17 小时前
BKP备份寄存器与RTC实时时钟(STM32标准库学习笔记)
笔记·stm32·单片机·嵌入式硬件·学习·嵌入式
陈飞EXCEL18 小时前
北京杰飞 IT 旗下妙码生花少儿Python编程上线两大学习系统
开发语言·python·学习
SLAM必须dunk18 小时前
Agent入门学习一
学习
承渊政道20 小时前
Linux网络学习【从NAT与代理服务理解网络转发、探索内网穿透原理、再到认识DNS与ICMP、最后动手部署并测试内网穿透】
linux·网络·学习·内网穿透·dns·nat
栉甜21 小时前
Vue2学习内容(上)
前端·javascript·vue.js·学习
shangjian00721 小时前
K8S学习-基础组件
学习·容器·kubernetes
lifallen21 小时前
ub-mode skill:软件工程原则
人工智能·学习·ai·软件工程·ai编程