ARM处理器工作模式实验报告文档格式.docx
- 文档编号:15365891
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:9
- 大小:478.38KB
ARM处理器工作模式实验报告文档格式.docx
《ARM处理器工作模式实验报告文档格式.docx》由会员分享,可在线阅读,更多相关《ARM处理器工作模式实验报告文档格式.docx(9页珍藏版)》请在冰豆网上搜索。
二、实验设备
硬件:
PC机。
软件:
EmbestIDEPr02004集成开发环境,Windows98/2000/NT/XP。
三、实验内容
通过ARM汇编指令,在各种处理器模式下切换并观察各种模式下寄存器的区别。
掌握ARM不同模式的进入与退出。
四、实验原理
1.ARM处理器模式
ARM体系结构支持表3-2所列的7种处理器模式。
在软件控制下可以改变模式,外部中断或异常处理也可以引起模式发生改变。
大多数应用程序在用户模式下执行。
当处理器工作在用户模式时,正在执行的程序不能访问某些被保护的系统资源,也不能改变模式,除非异常发生。
这允许适当编写操作系统来控制系统资源的使用。
图2-1
除用户模式外的其他模式称为“特权模式”,它们可以自由地访问系统资源和改变模式。
其中的5种称为“异常模式”,即FIQ(FastInterruptRequest)、IRQ(lnterruptRequest)、管理(Supervisor)、中止(Abort)和未定义(Undefined)。
当特定的异常出现时,进入相应的模式。
每种模式都有某些附加的寄存器,以避免异常出现时用户模式的状态不可靠。
剩下的模式是“系统模式”。
仅ARM体系结构V4以及以上的版本有该模式。
不能由于任何异常而进入该模式。
它与用户模式有完全相同的寄存器,但它是特权模式,不受用户模式的限制。
它供需要访问系统资源的操作系统任务使用,但希望避免使用与异常模式有关的附加寄存器。
避免使用附加寄存器保证了当任何异常出现时,都不会使任务的状态不可靠。
2.程序状态寄存器
3.2节提到的程序状态寄存器CPSR和SPSR包含了条件码标志、中断禁止位、当前处理器模式以及其他状态和控制信息。
每种异常模式都有一个程序状态保存寄存器SPSR。
当异常出现时,SPSR用于保留CPSR的状态。
3.本实验涉及到的Id命令行参数
-Ttextorg
使用org作为输出文件的text段的起始地址。
org必须是十六进制数。
实验操作步骤
(1)参考3.1节实验A的步骤
(1)建立一个新的工程,命名为ARMMode。
(2)参考3.1节实验A的步骤
(2)和实验参考程序编辑输入源代码。
编辑完毕后,保存文件为ARMMode.s。
(3)选择菜单项Project-AddToProject-Files,或在工程管理窗口右击选择快搪菜单命令,打开文件选择对话框,在工程目录下选择刚才建立的源文件ARMMode.s。
(4)参考3.1节实验A的步骤(4)进行相应设置。
注意:
在链接器设置选项卡的LinkOptions框内,手动加上“-TtextOx0”,即指定代码段起始地址为Ox0,如图3-8所示。
(5)参考3.1节实验A的步骤(5)生成目标代码。
(6)在调试设置选项卡中的Downloadaddress文本框内,输入的下载地址应该与链接器设置中指定的代码段起始地址相同,以保证程序能够正常执行,如图3-9所示。
(7)选择菜单项Debug—RemoteConnect连接软件仿真器,执行Download命令下载程序,并打开寄存器窗口。
(8)单步执行,观察并记录寄存器RO和CPSR值的变化,以及每次变化后执行寄存器赋值后36个寄存器值的变化情况,尤其注意各个模式下R13和R14的值。
结合实验内容和相关资料,观察程序运行,通过实验加深理解ARM各种状态下寄存器的使用。
理解和掌握试验后,完成实验练习题。
图2-2
五、实验结果
图2-3系统模式
图2-4快中断模式
图2-5管理模式
图2-6中止模式
图2-7普通中断
图2-8未定义模式
实验参考程序
.global_start
.text
_start:
#---Setupinterrupt/exceptionvectors
BReset_Handler
Undefined_Handler:
BUndefined_Handler
BSWI_Handler
Prefetch_Handler:
BPrefetch_Handler
Abort_Handler:
BAbort_Handler
NOP
IRQ_Handler:
BIRQ_Handler
FIQ_Handler:
BFIQ_Handler
SWI_Handler:
MOVpc,lr
Reset_Handler:
#intoSystemmode
MRSr0,CPSR/*读CPSR值*/
BICr0,r0,#0x1f/*清低5位*/
ORRr0,r0,#0x1f/*将模式设为系统模式*/
MSRCPSR,r0/*将r0写入CPSR*/
MOVr0,#1/*在系统模式初始化寄存器*/
MOVr1,#2
MOVr2,#3
MOVr3,#4
MOVr4,#5
MOVr5,#6
MOVr6,#7
MOVr7,#8
MOVr8,#9
MOVr9,#10
MOVr10,#11
MOVr11,#12
MOVr12,#13
MOVr13,#14
MOVr14,#15
#intoFIQmode
MRSr0,CPSR
BICr0,r0,#0x1f
ORRr0,r0,#0x11/*将模式设为快中断模式*/
MSRCPSR,r0
MOVr8,#16/*在快中断模式初始化寄存器*/
MOVr9,#17
MOVr10,#18
MOVr11,#19
MOVr12,#20
MOVr13,#21
MOVr14,#22
#intoSVCmode
ORRr0,r0,#0x13/*将模式设为管理模式*/
MOVr13,#23/*在管理模式初始化寄存器*/
MOVr14,#24
#intoAbortmode
ORRr0,r0,#0x17/*将模式设为中止模式*/
MOVr13,#25/*在中止模式初始化寄存器*/
MOVr14,#26
#intoIRQmode
ORRr0,r0,#0x12/*将模式设为普通中断模式*/
MOVr13,#27/*在普通中断模式初始化寄存器*/
MOVr14,#28
#intoUNDEFmode
ORRr0,r0,#0x1b/*将模式设为未定义模式*/
MOVr13,#29/*在未定义模式初始化寄存器*/
MOVr14,#30
BReset_Handler
.end
总结:
通过此次实验学会了使用MSR/MRS指令实现ARM处理器工作模式的切换,观察不同模式下的寄存器,加深了对CPU结构的理解,同时掌握了ld中如何使用命令行指定代码段起始地址。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ARM 处理器 工作 模式 实验 报告