第二讲ARM微处理器的编程模型
合集下载
第2章-ARM体系结构与编程模型

特征:MMU, Cache 最快频率、最高性能、合理功耗
特征:MPU, Cache 实时响应、合理性能、较低功耗
特征:no sub-memory system 一般性能、最低成本、极低功耗
ARM体系结构的命名规则
ARM{X}{y}{z}{T}{D}{M}{I}{E}{J}{F}{-S} x——系列 y——存储管理/保护单元 z——Cache T——Thumb16位译码器 D——JTAG调试器 M——快速乘法器 I——嵌入式跟踪宏单元 E——增强DSP指令 J——Jazelle F——向量浮点单元 S——可综合版本,以源代码形式提供的ARM核
电
300
温度范围
-40到80度
电源供应
2.5V ( 逻辑电路 ),3.3V (I/O) ,支持 5V I/Os
封装
456-Ball,Enhanced PBGA (35mm x 35mm)
*Dhrystone是一个综合性的基准测试程序,它是为了测试编译器和CPU处 理整数指令和控制功能的有效性,人为地选择一些“典型指令综合起来形 成的测试程序。
ARM1020E, ARM1022E ARM1026EJ-S
三级流水 性能:0.9MIPS/MHz, 可达到130MIPs (Dhrystone2.1)
五级流水, 性能:1.1MIPS/MHz,可达300 MIPS (Dhrystone 2.1),单32-bit AMBA bus 接口,支持MMU
五级流水,支持DSP指令。 性能:1.1MIPS/MHz,可达300 MIPS (Dhrystone 2.1),高性能AHB, 软核 (soft IP)
(excl. DSP)
2,000
0
2000
2001
二、ARM及其编程模型

分开的CPSR(current program status register,当前 程序状态寄存器)和SPSR(saved program status register,备份的程序状态寄存器),当异常发生时, SPSR用于保存CPSR的当前值,从异常退出时则可 以由SPSR来恢复CPSR。 增加了两种异常模式,使操作系统代码可方便地使 用数据访问中止异常、指令预取中止异常和未定义 指令异常。 增加了MRS指令和MSR指令,用于完成对CPSR和 SPSR寄存器的读/写;修改了原来的从异常中返回 的指令
RISC和CISC在构架上有着几个不同的地方:
1)首先是指令集的设计上,RISC构架的指令 格式和长度通常是固定的(如ARM是32位的指令)、 且指令和寻址方式少而简单、大多数指令在一个周期 内就可以执行完毕:CISC构架下的指令通常是可变 的、指令类型也很多、一条指令通常要若干周期 才可 以执行完毕。由于指令集多少与复杂度上的差异,是 RISC的处理器可以利用简单的硬件电路
(5)SIMD变种(ARM媒体功能扩展) ARM的SIMD媒体功能扩展为这些应用系统提供 了解决方案,它为包括音频和视频处理在内的应用 系统提供了优化功能,其主要特点如下: 使处理器的音频和视频处理的性能提高了2-4倍。 可同时进行2个16位操作数或者4个8位操作数的运算。 用户可自定义饱和运算的模式。 可进行2个16位操作数的乘加/乘减运算及32位乘以 32位的小数乘加运算。 同时8/16位选择操作。
2.版本2(v2) 与版本1相比,版本2增加了下列指令: 乘法与乘加指令(multiply& multiply-accumulate) 支持协处理器。 原子性(atomic)加载/存储指令SWP和SWPB(稍后的 版本称v2a)。 FIQ中的两个以上的分组寄存器。 3.版本3(V3) 版本3较以前的版本发生了大的变化,具体改进下: 推出32位寻址能力。
第2章ARM的体系结构及编程模型

10
第2章 ARM体系结构及编程模型
1 ARM技术的应用领域及特点 2 ARM微处理器系列 3 ARM处理器的工作模式
4 ARM 处理器的寄存器组织 5 ARM 异常处理 6 ARM处理器的存储器格式 7 ARM处理器的工作状态
11
ARM微处理器系列 ARM微处理器系列
? ARM7系列 ? ARM9系列 ? ARM9E系列
第2章 ARM体系结构及编程模型
1 ARM技术的应用领域及特点 2 ARM微处理器系列 3 ARM处理器的工作模式
4 ARM 处理器的寄存器组织 5 ARM 异常处理 6 ARM处理器的存储器格式 7 ARM处理器的工作状态
1
ARM技术的应用领域及特点
ARM-Advanced RISC Machines
13
ARM微处理器系列
ARM7微处理器系列
? 主要应用领域:工业控制、Internet设备、网络和调制 解调器设备、移动电话等多种多媒体和嵌入式应用。
? ARM7系列微处理器包括如下几种类型的核: ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ。其 中,ARM7TMDI是目前使用最广泛的32位嵌入式RISC处理 器,属低端ARM处理器核。TDMI的基本含义为:
3
ARM技术的应用领域及特点
ARM微处理器应用领域
? 到目前为止, ARM微处理器及技术的应用已经 广泛深入到国民经济的各个领域
工业控制领域:作为 32的RISC架构,基于 ARM核的微控制器芯片不但占据了高端微控 制器市场的大部分市场份额,同时也逐渐向 低端微控制器应用领域扩展, ARM微控制器 的低功耗、高性价比,向传统的 8位/16位 微控制器提出了挑战。
? ARM既可以认为是一个公司的名字,也可以 认为是对一类微处理器的通称,还可以认为是一 种技术的名字。
第2章 ARM体系结构及编程模型
1 ARM技术的应用领域及特点 2 ARM微处理器系列 3 ARM处理器的工作模式
4 ARM 处理器的寄存器组织 5 ARM 异常处理 6 ARM处理器的存储器格式 7 ARM处理器的工作状态
11
ARM微处理器系列 ARM微处理器系列
? ARM7系列 ? ARM9系列 ? ARM9E系列
第2章 ARM体系结构及编程模型
1 ARM技术的应用领域及特点 2 ARM微处理器系列 3 ARM处理器的工作模式
4 ARM 处理器的寄存器组织 5 ARM 异常处理 6 ARM处理器的存储器格式 7 ARM处理器的工作状态
1
ARM技术的应用领域及特点
ARM-Advanced RISC Machines
13
ARM微处理器系列
ARM7微处理器系列
? 主要应用领域:工业控制、Internet设备、网络和调制 解调器设备、移动电话等多种多媒体和嵌入式应用。
? ARM7系列微处理器包括如下几种类型的核: ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ。其 中,ARM7TMDI是目前使用最广泛的32位嵌入式RISC处理 器,属低端ARM处理器核。TDMI的基本含义为:
3
ARM技术的应用领域及特点
ARM微处理器应用领域
? 到目前为止, ARM微处理器及技术的应用已经 广泛深入到国民经济的各个领域
工业控制领域:作为 32的RISC架构,基于 ARM核的微控制器芯片不但占据了高端微控 制器市场的大部分市场份额,同时也逐渐向 低端微控制器应用领域扩展, ARM微控制器 的低功耗、高性价比,向传统的 8位/16位 微控制器提出了挑战。
? ARM既可以认为是一个公司的名字,也可以 认为是对一类微处理器的通称,还可以认为是一 种技术的名字。
ARM微处理器的编程模型(二)分析

➢ 作为32位的微处理器,ARM体系结构所支持的最大寻 址空间为4GB(232字节) • 受到物理地址线的限制,一般实际嵌入式处理器最 大寻址空间为几百兆
2020/9/30
7
嵌入式系统设计与应用
3.7.4 ARM微处理器的数据类型(续)
ARM体系结构可以用两种方法存储字数据
➢ 大端格式(Big endian)(8051) • 字数据的高字节存储在低地址中 • 字数据的低字节存放在高地址中
产生FIQ异常
2020/9/30
14
嵌入式系统设计与应用
3.7.5 ARM微处理器的异常状态(续)
1 对异常的响应 2 从异常返回 3 各类异常的具体描述 4 异常向量 5 异常优先级(CPU内部) 6 应用程序中的异常处理
Bit0=0
字对齐 0x00000000 0x00000004 0x00000008 ……
Bit1=0,Bit0=0
2020/9/30
6
嵌入式系统设计与应用
3.7.4 ARM微处理器的数据类型(续)
ARM体系结构的存储结构(编址以字节为单位)
➢ 从零字节到三字节放置第一个存储的字数据,从第四 个字节到第七个字节放置第二个存储的字数据,依次 排列。那么,字内数据如何存储?
强制对界
编译控制: 汇编align(1/2/4/8) unalign C语言#pragma pack(1/2/4/8)
问:在缺省(自然对界)情况下,上述结构需要 多少存储空间(小端格式)?
12个字节
2020/9/30
12
嵌入式系统设计与应用
3.7.5 ARM微处理器的异常状态
当正常的程序执行流程发生暂时的停止时,称之 为异常(Exception)
2020/9/30
7
嵌入式系统设计与应用
3.7.4 ARM微处理器的数据类型(续)
ARM体系结构可以用两种方法存储字数据
➢ 大端格式(Big endian)(8051) • 字数据的高字节存储在低地址中 • 字数据的低字节存放在高地址中
产生FIQ异常
2020/9/30
14
嵌入式系统设计与应用
3.7.5 ARM微处理器的异常状态(续)
1 对异常的响应 2 从异常返回 3 各类异常的具体描述 4 异常向量 5 异常优先级(CPU内部) 6 应用程序中的异常处理
Bit0=0
字对齐 0x00000000 0x00000004 0x00000008 ……
Bit1=0,Bit0=0
2020/9/30
6
嵌入式系统设计与应用
3.7.4 ARM微处理器的数据类型(续)
ARM体系结构的存储结构(编址以字节为单位)
➢ 从零字节到三字节放置第一个存储的字数据,从第四 个字节到第七个字节放置第二个存储的字数据,依次 排列。那么,字内数据如何存储?
强制对界
编译控制: 汇编align(1/2/4/8) unalign C语言#pragma pack(1/2/4/8)
问:在缺省(自然对界)情况下,上述结构需要 多少存储空间(小端格式)?
12个字节
2020/9/30
12
嵌入式系统设计与应用
3.7.5 ARM微处理器的异常状态
当正常的程序执行流程发生暂时的停止时,称之 为异常(Exception)
第二章 ARM微处理器编程模型-38页精选文档

FIQ异常响应时进入此模式
用于通用中断处理
IRQ异常响应时进入此模式
操作系统保护代码
系统复位和软件中断响应时进入 此模式
用于支持虚拟内存和/或存 储器保护
用于MMU
支持硬件协处理器的软件 未定义指令异常响应时进入此模
仿真
式
ARM处理器工作模式
特权模式
处理器模式
说明
备注
用户 (usr) 正常程序工作模式 不能直接切换到其它模式
未定义
支持硬模件协式处的理状器的态不未可定靠义指。令异常响应时进
(und) 未定义 (un软d) 件仿真
入此模式
ARM处理器工作模式
用户和系统模式
处理器模式
说明
备注
用户 (usr)
正常程序工作模式 不能直接切换到其它模式
用户
系统 (sys) 系统
((usy用特ssr))于权支任持务而操等且作它系这统们两的使种用模与可等完用以特式户直权全都模接相不式切同类换能似到的由,其寄异但它存具模常有式器进组入。,
未定义 (und)
支持硬件协处理器的 未定义指令异常响应时进
软件仿真
入此模式
ARM寄存器组织
• 37个32位寄存器,31个通用寄存器,6个状 态寄存器
• 处理器工作状态和运行模式决定哪些寄存 器可编程访问
• 最多可有18个活动寄存器,16数据寄存器、 2个处理器状态寄存器,程序员可见的数据 寄存器是R0~R15
未未定定义义 (und) (und)
用为 一于通特些用权片中模内断处式外理设。在AR硬IMRQ件内异设部常计响寄应上存时只器进允入和此许模式
操( 访作系或问统者。保可此护代选外码为,只特允权系时统进许模复入)式位此特可和模软式权以件模自中式由断响下的应 用或切于 存支储换持器处虚保理拟护内器存模和式/ ,在A而RM用没户有模大用式处不能 支直持硬接件切协换处理到器别的的模未定式义。指令异常响应时进
ARM处理器编程模型与指令系统

第十九页,共93页。
ARM形状(xíngzhuàn)各形式下
寄存器 寄存器在汇编 类别 中的名称
用户
的各寄模式存下器实际访问的寄存器
系统
管理
中止
未定义
中断
快中断
R0(a1)
R0
R1(a2)
R1
R2(a3)
R2
R3(a4)
R3
R4(v1)
R4
R5(v2)
R5
R6(v3)
通用寄 存器和
一R切7(v(4y) īqiè)的37个寄存
第三页,共93页。
4.1 ARM微处置(chǔzhì)器的义务外 形
• ARM指令集和Thumb指令集均有切换处置器外形 (wài xínɡ)的指令,并可在两种义务外形(wài xínɡ)之 间切换,但ARM微处置器在末尾执行代码时,应该 处于ARM外形(wài xínɡ)
• 进入ARM外形(wài xínɡ):当操作数寄存器的外形 (wài xínɡ)位〔位0〕为0时,执行BX指令时可以使微 处置器从Thumb外形(wài xínɡ)切换到ARM外形(wài xínɡ)。
支持硬模件式协不处理能器直的 接未切定换义指到令别异的常响模应式时进。入此
软件仿真
模式
第十七页,共93页。
处置(chǔzhì)器义务方式
• 用户和系统(xìtǒng)方式
处理器模式
说明
备注
用用户户(u(surs)r) 正常程序工作模式 不能直接切换到其它模式
系系统统(s(syyss) )
用于支持操作系统 与用户模式类似,但具有可以直接
R11(FP,v8)
R12(IP)
R13(SP)
R14(LR)
第2章ARM编程模型和指令集介绍讲述

第3章 ARM体系结构
2.1.4 ARM处理器模式
一、处理器模式
处理器模式:处理器在执行程序时在不同时刻所处的不同情况 ARM体系结构支持7种处理器模式。 (虽然支持7种模式,但实际中并不一定都会使用到) ★ 1、User用户模式(usr) 正常程序执行模式 ★2、System系统模式(sys) 运行具有特权的操作系统任务 ★3、IRQ-外部中断模式(irq) 用于通用的中断处理,CPU的中断来自中断控制器
第3章 ARM体系结构
4、工作模式位 M0、M1、M2、M3和M4是模式位。这些位决定 处理器的工作模式。
M[4:0] 10000 10001 10010 10011 10111 11011 模式 用户 FIQ IRQ 管理 中止 未定义 可访问的寄存器
PC、R14~R0、CPSR PC、R14_fiq~R8_fiq、R7~R0、CPSR、SPSR_fiq PC、R14_irq、R13_irq、R12~R0、CPSR、SPSR_irq PC、R14_svc、R13_svc、R12~R0、CPSR、SPSR_svc PC、R14_abt、R13_abt、R12~R0、CPSR、SPSR_abt PC、R14_und、R13_und、R12~R0、CPSR、SPSR_und PC、R14~R0、CPSR
第3章 ARM体系结构
2、Thumb状态
★处理器执行16位的Thumb指令
★指令半字对齐:指令地址是2的整数倍(bit0=0 ) ★ 执行一条指令,PC值加2个字节(16位) 说明 ★1、处理器可以随时在两种工作状态之间切换。 ★ 2、ARM微处理器初始状态是ARM状态
第3章 ARM体系结构
2.1.3 ARM体系的存储器和格式
ARM 处理器的编程模型

式位 5个SPSRs--(程序状态保存寄存器) 当异常发生时保存CPSR
状态
图2.3 ARM状态下的寄存器组织
2.程序状态寄存器
❖ ARM7TDMI 包含当前程序状态寄存器 (CPSR), 加上5个程 序状态保存寄存器SPSR,当异常发生时,用于保存CPSR的 状态
❖ 这些寄存器的功能是: 保存ALD当前操作信息 控制允许和禁止中断 设置处理器操作模式
以为16位(在Thumb状态下)。 ARM微处理器中支持字节(8位)、半字(16位)、字(32位)
三种数据类型,其中,字需要4字节对齐(地址的低两位为0)、半字 需要2字节对齐(地址的最低位为0)。
ARM体系结构将存储器看作是从零地址开始的字 节的线性组合。从零字节到三字节放置第一个存储的 字数据,从第四个字节到第七个字节放置第二个存储 的字数据,依次排列。作为32位的微处理器,ARM
❖ 除了用户模式外,其他模式均可视为特权模式
1.4 ARM 状态下的寄存器组织
1.通用寄存器 通用寄存器包括R0~R15,可以分为三类: 未分组寄存器R0~R7; 分组寄存器R8~R14 程序计数器PC(R15)
可访问的寄存器取决于处理器的模式。 其它寄存器 (the banked registers) 的状态在支持IRQ, FIQ, 管理
从ARM状态切换到Thumb状态 LDR R0,=Label+1 BX R0
从Thumb状态切换到ARM状态 LDR R0,=Label BX R0
1.3 ARM 处理器的工作模式
❖ ARM 处理器有7种工作模式: 用户模式(usr) - 正常的程序执行模式 快速中断模式(fiq) - 支持高速数据传输或通道处理 中断模式(irq) - 用于通用中断处理 管理员模式(svc) - 操作系统的保护模式. 中止模式(abt) - 支持虚拟内存和/或内存保护 系统模式(sys) - 支持操作系统的特殊用户模式(运行操作系统任务) 未定义模式(und) - 支持硬件协处理器的软件仿真
状态
图2.3 ARM状态下的寄存器组织
2.程序状态寄存器
❖ ARM7TDMI 包含当前程序状态寄存器 (CPSR), 加上5个程 序状态保存寄存器SPSR,当异常发生时,用于保存CPSR的 状态
❖ 这些寄存器的功能是: 保存ALD当前操作信息 控制允许和禁止中断 设置处理器操作模式
以为16位(在Thumb状态下)。 ARM微处理器中支持字节(8位)、半字(16位)、字(32位)
三种数据类型,其中,字需要4字节对齐(地址的低两位为0)、半字 需要2字节对齐(地址的最低位为0)。
ARM体系结构将存储器看作是从零地址开始的字 节的线性组合。从零字节到三字节放置第一个存储的 字数据,从第四个字节到第七个字节放置第二个存储 的字数据,依次排列。作为32位的微处理器,ARM
❖ 除了用户模式外,其他模式均可视为特权模式
1.4 ARM 状态下的寄存器组织
1.通用寄存器 通用寄存器包括R0~R15,可以分为三类: 未分组寄存器R0~R7; 分组寄存器R8~R14 程序计数器PC(R15)
可访问的寄存器取决于处理器的模式。 其它寄存器 (the banked registers) 的状态在支持IRQ, FIQ, 管理
从ARM状态切换到Thumb状态 LDR R0,=Label+1 BX R0
从Thumb状态切换到ARM状态 LDR R0,=Label BX R0
1.3 ARM 处理器的工作模式
❖ ARM 处理器有7种工作模式: 用户模式(usr) - 正常的程序执行模式 快速中断模式(fiq) - 支持高速数据传输或通道处理 中断模式(irq) - 用于通用中断处理 管理员模式(svc) - 操作系统的保护模式. 中止模式(abt) - 支持虚拟内存和/或内存保护 系统模式(sys) - 支持操作系统的特殊用户模式(运行操作系统任务) 未定义模式(und) - 支持硬件协处理器的软件仿真
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
香港即时科研集团
即时科研 IT 精英 培训
14
ThizLinux
• • • • • • • • •
以上的描述可用指令完成: 1、执行以下任意一条指令: MOV PC,LR BX LR 2、在子程序入口处使用以下指令将R14存入堆栈: STMFD SP!,{<Regs>,LR} 对应的,使用以下指令可以完称子程序返回: LDMFD SP!,{<Regs>,PC} R14也可作为通用寄存器。
香港即时科研集团 即时科研 IT 精英 培训
17
ThizLinux
*ARM状态下,任一时刻可以访问以上所讨论的16个通用寄存器和一 到两个状态寄存器。在非用户模式(特权模式)下,则可访问到特定 模式分组寄存器
香港即时科研集团
即时科研 IT 精英 培训18ThizLinux
•
寄存器R16: 1)寄存器R16用作CPSR(Current Program Status Register,当前程 序状态寄存器) ; 2)CPSR可在任何运行模式下被访问,它包括条件标志位、中断禁止 位、当前处理器模式标志位,以及其他一些相关的控制和状态位 ; 3)SPSR(Saved Program Status Register,备份的程序状态寄存器 (异常发生时,SPSR用于保存CPSR的当前值,从异常退出时则可由 SPSR来恢复CPSR )
香港即时科研集团
即时科研 IT 精英 培训
21
ThizLinux
Thumb状态下的寄存器组织
香港即时科研集团
即时科研 IT 精英 培训
22
ThizLinux
7. Thumb状态下的寄存器组织与ARM状态 下的寄存器组织的关系
• • • • •
─ Thumb状态下和ARM状态下的R0~R7是相同的。 ─ Thumb状态下和ARM状态下的CPSR和所有的SPSR是相同的。 ─ Thumb状态下的SP对应于ARM状态下的R13。 ─ Thumb状态下的LR对应于ARM状态下的R14。 ─ Thumb状态下的程序计数器对应于ARM状态下R15
香港即时科研集团
即时科研 IT 精英 培训
11
ThizLinux
1)R0~R7 未分组寄存器 (未分组寄存器都指向同一个物理寄存器)?? 2)R8~R14 R8~R12来说,每个寄存器对应两个不同的物理寄存器,当使用fiq模 式时,访问寄存器R8_fiq~R12_fiq;当使用除fiq模式以外的其他模式 时,访问寄存器R8_usr~R12_usr
香港即时科研集团
即时科研 IT 精英 培训
26
ThizLinux
程序状态寄存器格式
即时科研 IT 精英 培训
香港即时科研集团
27
ThizLinux
• • • •
条件码标志 N、Z、C、V均为条件码标志位。它们的内容可被算术或逻辑运 算的结果所改变,并且可以决定某条指令是否被执行。 在ARM状态下,绝大多数的指令都是有条件执行的。 在Thumb状态下,仅有分支指令是有条件执行的。
香港即时科研集团
即时科研 IT 精英 培训
7
ThizLinux
3.指令长度及数据类型
• •
ARM微处理器的指令长度可以是32位(在ARM状态下),也可以为16 位(在Thumb状态下)。 ARM微处理器中支持字节(8位)、半字(16位)、字(32位)三种 数据类型,其中,字需要4字节对齐(地址的低两位为0)、半字需要2 字节对齐(地址的最低位为0)
嵌入式软件工程师课程系列
第2章 ARM微处理器的编程模型
香港即时科研集团
即时科研 IT 精英 培训
1
ThizLinux
• 课程涉及内容:
1.ARM处理器 2.ARM处理器的编程模型 3.ARM处理器的指令系统 4.UClinux 5.交叉编译 6.应用系统设计(开发 板) 7.ARM程序设计
香港即时科研集团
• •
ARM体系结构可以用两种方法存储字数据,称之为大端格式和小端格 式; 大端格式: 在这种格式中,字数据的高字节存储在低地址中,而字数据的低字节 则存放在高地址中
香港即时科研集团
即时科研 IT 精英 培训
6
ThizLinux
• •
小端格式: 与大端存储格式相反,在小端存储格式中,低地址中存放的是字数据 的低字节,高地址存放的是字数据的高字节
即时科研 IT 精英 培训
2
ThizLinux
• • • • • •
本讲的主要内容: - ARM微处理器的工作状态 - ARM体系结构的存储器格式 - ARM微处理器的工作模式 - ARM体系结构的寄存器组织 - ARM微处理器的异常状态
香港即时科研集团
即时科研 IT 精英 培训
3
ThizLinux
•
ARM体系结构将存储器看作是从零地址开始的字节的线性组合。从零 字节到三字节放置第一个存储的字数据,从第四个字节到第七个字节 放置第二个存储的字数据,依次排列。作为32位的微处理器,ARM体 系结构所支持的最大寻址空间为4GB(232字节)。
香港即时科研集团
即时科研 IT 精英 培训
5
ThizLinux
香港即时科研集团
即时科研 IT 精英 培训
13
ThizLinux
• •
寄存器R13在ARM指令中常用作堆栈指针 ; Thumb指令集中,某些指令强制性的要求使用R13作为堆栈指针 ; R14也称作子程序连接寄存器(Subroutine Link Register)或连接寄 存器LR ; 例如:在每一种运行模式下,都可用R14保存子程序的返回地址,当用 BL或BLX指令调用子程序时,将PC的当前值拷贝给R14,执行完子 程序后,又将R14的值拷贝回PC,即可完成子程序的调用返回 .
0b11011
未定义模式
PC,CPSR, SPSR_und,R14_und,R13_und, R12~R0,
0b11111
系统模式
PC,CPSR(ARM v4及以上版本), R14~R0
运行模式位M[4:0]的具体含义 香港即时科研集团 即时科研 IT 精英 培训
30
ThizLinux
保留位 PSR中的其余位为保留位,当改变PSR中的条件码标志位或者控制位 时,保留位不要被改变,在程序中也不要使用保留位来存储数据。保 留位将用于ARM版本的扩展。
香港即时科研集团
即时科研 IT 精英 培训
10
ThizLinux
5. ARM状态下的寄存器组织
• •
ARM微处理器共有37个32位寄存器,其中31个为通用寄存器,6个为 状态寄存器; 通用寄存器: 通用寄存器包括R0~R15,可以分为三类: ─ 未分组寄存器R0~R7; ─ 分组寄存器R8~R14 ─ 程序计数器PC(R15)
香港即时科研集团
即时科研 IT 精英 培训
25
ThizLinux
9.程序状态寄存器
• • • • •
ARM体系结构包含一个当前程序状态寄存器(CPSR)和五个备份的 程序状态寄存器(SPSRs) 备份的程序状态寄存器用来进行异常处理,其功能包括: ─ 保存ALU中的当前操作信息 ─ 控制允许和禁止中断 ─ 设置处理器的运行模式
香港即时科研集团
即时科研 IT 精英 培训
31
ThizLinux
•
异常(Exceptions) 正常的程序执行流程发生暂时的停止时,称之为异常 . ARM体系结构所支持的异常
异常类型 具体含义 当处理器的复位电平有效时,产生复位异常,程序跳转到复位异常处理程序处执行。
复位
未定义指令
当ARM处理器或协处理器遇到不能处理的指令时,产生未定义指令异常。可使用该异常机制进行软件仿真。
0b10010
IRQ模式
PC,CPSR, SPSR_irq,R14_irq,R13_irq,R12~R0
0b10011
管理模式
PC,CPSR, SPSR_svc,R14_svc,R13_svc,,R12~R0,
0b10111
中止模式
PC,CPSR, SPSR_abt,R14_abt,R13_abt, R12~R0,
香港即时科研集团
即时科研 IT 精英 培训
12
ThizLinux
•
R13、R14 R13_<mode> R14_<mode> mode为以下几种模式之一:usr、fiq、irq、svc、abt、und 每个寄存器对应6个不同的物理寄存器,其中的一个是用户模式与系 统模式共用,另外5个物理寄存器对应于其他5种不同的运行模式
香港即时科研集团
即时科研 IT 精英 培训
23
ThizLinux
香港即时科研集团
即时科研 IT 精英 培训
24
ThizLinux
8. THUMB状态下的高位寄存器
• •
高位寄存器R8~R15并不是标准寄存器集的一部分,但可使用汇编语 言程序受限制的访问这些寄存器,将其用作快速的暂存器。 MOV指令,数据可以在低位寄存器和高位寄存器之间进行传送;高位 寄存器的值可以使用CMP和ADD指令进行比较或加上低位寄存器中的 值。
香港即时科研集团
即时科研 IT 精英 培训
9
ThizLinux
•
除用户模式以外,其余的所有6种模式称之为非用户模式,或特权模 式(Privileged Modes);其中除去用户模式和系统模式以外的5种又 称为异常模式(Exception Modes),常用于处理中断或异常,以及 需要访问受保护的系统资源等情况。
香港即时科研集团
即时科研 IT 精英 培训
15
ThizLinux
•
程序计数器PC(R15) ARM状态下,位[1:0]为0,位[31:2]用于保存PC; Thumb状态下,位[0]为0,位[31:1]用于保存PC .