关于ARM系列处理器的体系结构问题,ARM的体系结构本来涉及的知识点就比较多和复杂,笔者尽量在此处把知道的一步步的梳理一下:
1:关于S3C2440的启动方式
S3C2440的启动方式有两种:
1)Nand Flash启动
2)Nor Flash启动
就是痛拨动开关S2来决定,S2接到Nor Flash 标识一侧时,系统将从Nor Flash启动,反之就从Nand Flash启动
2:ARM的工作原理以及体系结构
1)两种工作状态
- 处理器执行32位字对齐的ARM指令(ARM状态)
- 处理器执行16位字对齐的ARM指令(Thumb状态)
2)ARM体系结构的存储方式
- 大端格式:字数据的高字节存储在低地址,而字数据的低字节则存储在高地址中
- 小端格式:字数据的高字节存储在高地址,而字数据的低字节则存储在低地址中
其中:字按照4字节对齐(地址的低部分为0)
半字按2字节对齐
3)工作模式
ARM处理器的7种工作模式:
- 用户模式(usr):用于正常执行程序
- 快速中断模式(FIQ)
- 外部中断模式(IRQ)
- 管理模式(svc)
- 数据访问终止模式(abt)
- 系统模式(sys)
- 未定义指令中止模式
7种工作模式划分:
除了用户模式以外叫做非用户模式或者叫做特权模式
除用户模式或系统模式以外,其余的叫做异常模式。
4)ARM的寄存器
概述:ARM具有37个32位寄存器,其中31个通用寄存器,6个程序状态寄存器。
37个寄存器的访问:
寄存器分类:
- 不分组的通用寄存器:R0-R7
- 分组的通用寄存器:R8-R14
- 程序计数器:R15 (PC指针)
R13通常用作堆栈指针SP
R14通常用作LR,指向函数的返回地址,用作子程序链接寄存器。
关于SPSR:
SPSR是CPSR的备份,CPSR存放是程序的运行状态。为异常格式设计与CPSR相同的一个寄存器,当异常出现时,把CPSR的内容备份给SPSR,当异常处理完以后,再把SPSR的内容返回给CPSR,恢复现场。