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中断的函数直接放在其向量地址中,这样则不需要跳转,处理速度更快。