一、 基本概念
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