1
、Cortex-A 手机、平板、上网本 iPad/iPhone
Cortex-R 面向实时应用的高性能内核
Cortex-M 面向各类嵌入式应用的微控制器内核 STM32
ARM9 ARM11 中高端
CPU ---仪器仪表 工控
三级流水线、五级流水线 取指—》译码
----》执行
衡量
CPU的性能指标:cache、TCM、
MMU、AHB、DSP、Jazelle
2
、ARM的工作状态:2种:ARM状态---》指向32位的ARM指令;thumb状态
---》执行16位的thumb指令。
3
、存储器的格式:小端(Little-Endian)---
》高字节存放在高地址中。
大端(Big-Endian)---
》低字节存放在高地址中。
4
、ARM的工作模式:
七种工作模式:
USR FIQ IRQ SVC SYS ABORT UND
其中六种是特权模式:
FIQ IRQ SVC SYS ABORT UND
其中五种是异常模式:
FIQ IRQ SVC ABORT UND
1、 各种模式下的寄存器:
R0—R7
各模式共用
R8—R12 FIQ
独立使用,其他模式共用
R13- 》 SP
栈指针 各模式独立
R14-》 LR
链接寄存器 各模式独立
PC
程序计数器—》指向哪里就准备取哪里的指令执行
---》正在取指的指令而不是正在执行的指令
CPSR
当前程序状态寄存器
SPSR
保存程序状态寄存器
2、 中断向量:
启动代码中的异常向量表:
_start:
b reset
ldr pc, _undifined_instruction
ldr pc, _software_interrupt
ldr pc, _prefetch_abort
ldr pc, _data_abort
ldr pc, _not_used
ldr pc, _irq
ldr pc, _fiq
_undifined_instruction: .word undifined_instruction
_software_interrupt: .word software_interrupt
_prefetch_abort: .word prefetch_abort
_data_abort: .word data_abort
_not_used: .word not_used
_irq: .word irq
_fiq: .word reset
3、 异常响应过程:
1、将下一条指令的地址存入相应连接寄存器LR
• 2、将CPSR复制到相应的SPSR中。
• 3、根据异常类型,强制设置CPSR的运行模式位。
• 4、强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。
还可以设置中断禁止位,以禁止中断发生。
• 5 如果异常发生时,处理器处于Thumb状态,则当异常向量地址加载入PC时,处理器自动切换到ARM状态。
8
、从异常返回:
• 1、将连接寄存器LR的值减去相应的偏移量后送到PC中。
• 2、将SPSR复制回CPSR中。
• 3、若在进入异常处理时设置了中断禁止位,要在此清除。
9
、FIQ在中断向量的最后的原因:可以把FIQ中断的函数直接放在其向量地址中,这样则不需要跳转,处理速度更快。