ARM ---day1

一、 基本概念

1. RISC和CISC?

RISC:Reduced Instruction Set Computer,精简指令集

芯片简单、成本低、体积小、功耗小

CISC:Complex Instruction Set Computer,复杂指令集

性能强、芯片复杂、成本高、体积高、功耗大

x86:复杂指令集架构

ARM:精简指令集架构

2. Cortex-A7内核中有多少个通用寄存器?

非工作模式情况下:16个通用寄存器(R0-R15)

工作模式情况下:40个通用寄存器

3. PC、LR、SP、CPSR、SPSR寄存器作用?

pc(R15寄存器):programmer counter 程序计数器,本质上是一个指针,指向代码正在执行的当前指令的下一条指令。pc指向哪,程序运行到哪。

lr(R14寄存器):lined regiter 链接寄存器,保存函数返回地址。

sp(R13寄存器):stack pointer 栈指针寄存器,用于管理栈区空间,永远指向栈顶。

CPSR:current programmer status register 当前程序状态寄存器,存放程序运行到某一步时相关的状态(溢出、进位、借位)。

SPSR:save programmer status register 保存程序状态寄存器,当异常发生时,保存CPSR寄存器的值。

4. MMU、Cache作用?

MMU:Memory Mangement Unit 内存管理单元,将程序中的虚拟内存空间映射到实际物理内存空间,提高物理内存利用率。(学习ARM裸机,关闭MMU;学linux驱动,打开MMU)。

CACHE:高速缓存,提高CPU访问数据的速度

DCACHE:data cache,数据缓存

ICACHE:instruction cache,指令缓存

5. nor flash和nand flash区别?

NOR Flash 和 NAND Flash 都属于广义 ROM,都是非易失性存储器;

但它们不是传统的只读 ROM,而是可擦写的 Flash ROM。

nor flash:每一个字节都可以被寻址,带有地址总线、数据总线和控制总线,数据访问时可以像RAM一样(51单片机)

nand flash:块设备数据,通常以512byte去访问(一次性读/写512byte),不带地址(电脑、SOC)

6. ARM处理器的7种工作模式?

User:非特权模式,大部分任务执行在这种模式

FIQ:当一个高优先级(fast)中断产生时将会进入这种模式

IRQ:当一个低优先级(normal)中断产生时将会进入这种模式

Supervisor:当复位或软中断指令执行时将会进入这种模式

Abort:当存取异常时将会进入这种模式

Undef:当执行未定义指令时将会进这种模式

System:使用和User模式相同寄存器集的特权模式

Cortex-A特有模式:

Monitor:是为了安全而扩展出的用于执行安全监控代码的模式;也是一种特权模式

7. ARM异常处理流程?(重点)

当异常产生时,ARM core:

拷贝CPSR到SPSR_<mode> 备份

设置适当的CPSR位:

改变处理器状态进入ARM态

改变处理器模式进入相应异常模式 低五位

设置中断禁止位禁止相应中断(如果需要)

保存返回地址到LR_<mode>

设置PC为相应的异常向量 给地址

返回时,异常处理需要:

从SPSR_<mode>恢复CPSR

从LR_<mode>恢复PC

Note:这些操作只能在ARM态执行

8. 异常向量和异常向量表?

异常向量:跳转到异常服务函数指令的++++地址++++

异常向量表:++++数组++++,数组中存放的是跳转到对应异常服务函数的指令

9. AHB和APB总线?

AHB:Advanced High Bus,先进高速总线,连接一些通信速度比较快的外设(USB、网口、RAM)(北桥芯片)

APB:Advanced Peripheral Bus,先进外设总线,连接一些通信速度比较慢的外设(Timer、GPIO、UART)(南桥芯片)

10. i.mx6ull芯片内核版本?

cortexA7

相关推荐
琥珀.6 小时前
mysql中json数组转列表查询
linux·运维·服务器
zhangrelay6 小时前
新版|-|单片机原理与接口技术-2026持续改进优化-从MEGA2560-ESP32与Wokwi到ROS2-Lyrical与具身智能栈
笔记·单片机·嵌入式硬件·学习
dawnsky.liu6 小时前
在 RHEL 中使用 goose 实现远程主机管理
linux·运维·ai
Linux运维技术栈8 小时前
CVE-2026-91403 高危漏洞修复:Rocky Linux 9 多版本 JDK 环境清理实操
java·linux·运维
slongzhang_10 小时前
linux 递归删除源码文件|递归删除目录下 *.js,但排除 *.min.js
linux·开发语言·javascript
叼烟扛炮10 小时前
Linux 学习笔记(三十三):线程互斥——互斥锁(Mutex)与死锁
linux·运维·服务器·笔记·学习·1024程序员节
无足鸟ICT10 小时前
【RHCA+】who命令(查看已登陆用户)
linux·运维·服务器
Escalating_xu10 小时前
【Linux 网络编程】应用层协议 HTTP(下):Header、连接管理与 C++ HTTP 服务器
linux·服务器·网络
m4Rk_12 小时前
【论文阅读】Agent 记忆机制(113):Agentic Memory Management——从“检索相关信息”走向“管理 Agent 内部记忆”
论文阅读·人工智能·学习·开源·github
辣知13 小时前
辣知·化智92 《山海经》里的史前密码
学习