首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

ARM基本知识更新

ARM基本知识更新

分组寄存器R8R14
R8R12
每个寄存器对应2个不同的物理寄存器
当使用FIQ模式时,访问R8_fiqR12_fiq
当使用其他模式时,访问R8_usrR12_usr
R13R14
每个寄存器对应6个不同的物理寄存器
其中一个寄存器是用户模式与系统模式共用
另外5个物理寄存器对应于其他5种不同的工作模式


不同物理寄存器的区分
R13_<mode>
R14_<mode>
mode为:sys_usr(系统_用户模式)fiq(快速中断模式)irq (外部中断模式)svc(管理模式)、abt(中止模式)und(未定义指令异常模式)
例如:
R13_usrR13_fiqR13_irq
R14_svcR14_abtR14_und


R13寄存器
常用作堆栈指针SPStack Pointer),一种习惯用法
也可使用其他的寄存器作为堆栈指针
Thumb指令集中,某些指令强制使用R13作为堆栈指针
在应用程序初始化时,一般都要初始化每种模式下的R13,使其指向该工作模式的栈空间


R14寄存器
也称链接寄存器LRLink Register
当执行BL子程序调用指令时,R14中得到R15(程序计数器PC)的备份
BL Label
;下一条指令地址LR, LabelPC
当发生中断或异常时,对应的分组寄存器R14_svcR14_irqR14_fiqR14_abtR14_und用来保存R15的返回值
其他情况下,R14用作通用寄存器


R15寄存器
R15寄存器用作程序计数器(PC
ARM状态:位[1:0]0,位[31:2]用于保存PC
Thumb状态:位[0]0,位[31:1]用于保存PC
由于ARM体系结构采用了多级流水结构,对于ARM指令集而言,PC总是指向当前执行指令的下两条指令的地址,即PC的值为当前执行指令的地址值加8个字节 (4字节*2  取指(PC)、译码)。


程序状态寄存器的构成
一个当前程序状态寄存器(CPSR
五个备份程序状态寄存器(SPSR
备份的程序状态寄存器用来进行异常处理
程序状态寄存器的功能
保存ALU中的当前运行状态
控制允许和禁止中断
设置处理器的工作模式

ARM体系结构的存储结构
0地址开始的以字节为单位的线性组合
0字节到3字节放置第一个存储的字数据,从第4个字节到第7个字节放置第二个存储的字数据,依次排列
作为32位的微处理器,ARM体系结构所支持的最大寻址空间为4GB232字节)
受到物理地址线的限制,一般实际嵌入式处理器最大寻址空间为几百兆
返回列表