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

相关推荐
光电的一只菜鸡5 小时前
ubuntu之坑(二十)——VMware虚拟机系统无法正常进入如何处理
linux·运维·ubuntu
你住过的屋檐7 小时前
【Nginx】linux上安装nginx
linux·运维·nginx
宵时待雨7 小时前
linux笔记归纳17:传输层协议UDP
linux·笔记·udp
SCandL1528 小时前
k8s service
linux·容器·kubernetes
小弥儿9 小时前
GitHub今日热榜 | 2026-08-26:AI 大脑与知识管理扎堆
人工智能·学习·开源·github
荷蒲9 小时前
【小白量化Qbuddy】利用AI学习中文Python
人工智能·python·学习
会飞的土拨鼠呀9 小时前
Linux的存储使用率应该如何计算
linux·运维·服务器
中科高级技工学校9 小时前
乌鲁木齐中医康复学习经历分享
大数据·学习
weixin_5112552111 小时前
NGINX常用配置
linux·服务器·nginx
JavaPub-rodert11 小时前
具身智能行业技术全景:从感知、规划、控制到 VLA 与机器人学习
学习·机器人