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

相关推荐
ltl6 小时前
大多数「无锁」代码其实不是无锁的
linux
ltl6 小时前
Linux 内核的内存屏障:一个让我调了三天的 bug
linux
paopaokaka_luck7 小时前
基于springboot3+vue3的企业考勤管理系统(部门树递归、Echarts图形化分析)
开发语言·spring boot·学习·echarts·mybatis·需求分析·代码规范
minglie17 小时前
zynq高频小数据量PS闭环 抖动时间的测量
学习
long3167 小时前
MySQL 学习练习(配套 01 入门资料)
数据库·学习·mysql
Lonely 净土8 小时前
Rocky Linux 安装教程
linux·运维·服务器
梦雨生生8 小时前
java开发工具(学习第一天)
java·开发语言·学习
李白你好12 小时前
Windows 离线 Linux 提权辅助查询工具
linux
Lust Dusk13 小时前
记一次Linux应急响应题目解析
linux·运维·服务器·网络·安全·网络安全
ShineWinsu13 小时前
对于Linux:五种IO模型以及非阻塞IO的详细解析
linux·c++·面试·io·阻塞·非阻塞·fcntl