ARM
- ARM架构
- ARM七个工作模式
- 寄存器
- 异常向量表
- 存储格式(内存大小端)
- 汇编指令
ARM架构
RAM:随机访问存储器
ROM:只读访问存储器
AHB:先进高速总线
APB:先进外设总线
USB:统一串行总线
norflash:可以被寻址
nandflash:不可以被寻址
ALU:算数逻辑单元
ARM七个工作模式
user: 用户模式(USR):正常程序执行模式,不能直接切换到其他模式
system:系统模式(SYS):运行操作系统的特权任务,与用户模式类似,但具有可以直接切换到其他模式等特权
FIQ: 快中断模式(FIQ):支持高速数据传输及通道处理,FIQ异常响应时进入此模式
IRQ: 中断模式(IRQ):用于通用中断处理,IRQ异常响应时进入此模式
Supervisor:管理模式(SVC):操作系统保护模式,系统复位和软件中断响应时进入此模式(由系统调用执行软中断SWI命令触发)
Abort: 中止模式(ABT):用于支持虚拟内存和/或存储器保护,在ARM7TDMI没有大用处
Undef: 未定义模式(UND):支持硬件协处理器的软件仿真,未定义指令异常响应时进入此模式
寄存器
ARM微处理器共有37个32位寄存器,其中31个为通用寄存器,6个位状态寄存器。
Cortex有40个32位寄存器
r0 - r12:通用寄存器
r13 (sp):栈指针寄存器
r14(lr):链接寄存器
r15(pc):程序计数器:指向程序运行的下一行
cpsr:当前程序状态寄存器
spsr:备份程序状态寄存器
异常向量表
函数指针的数组
1.拷贝cpsr到spsr上
2.设置
3.保存返回地址到LR_
4.设置pc为相应的异常向量
返回时:
1.从spsr_恢复cpsr
2.从LR_恢复PC
总结:恢复cpsr和pc
存储格式(内存大小端)
存储器格式:
大端格式:高字节在低地址,低字节在高地址
小端格式:高字节在高地址,低字节在低地址
汇编指令
1.基本框架
area reset, code, readonly
code32
entry //{
end //}