ARM流水线
1、取地址
2、译码
3、执行
4、访问内存
5、回写
五个步骤并行开始
流水线一取地址时
流水线二则在译码,以此类推
在发生异常时,会进入到特定的模式,需要在该模式中对异常进行处理。不同模式下访问的寄存器不完全一致,如图。
SPSR用来保存切换模式后,原模式的状态,以便于异常处理后的返回。如从UNDEF模式,返回到SVC模式。
msr r0,spsr @将切换到该模式前的状态从spsr读出,保存到spsr的内容,是由芯片自动完成的。
mrs cpsr,r0 @将spsr的内容写回cpsr,完成模式的返回。
不同模式下的R13(SP)、R14(LR)不同,也是为了在不同模式下切换能正常进行。
movs pc,lr @既把lr给pc,也把spsr给cpsr
总线
总线作用:
- 提供时钟
- 管理地址
- 响应中断
- 传输数据
- 控制信号
- 等等…
ARM的AMBA总线规范
- AHB高速总线---->HCLK
- APB外设总线---->PCLK
- AXB
FLCK全速时钟,给ARM核使用。