ARM微控制器工作模式实验.doc_第1页
ARM微控制器工作模式实验.doc_第2页
ARM微控制器工作模式实验.doc_第3页
ARM微控制器工作模式实验.doc_第4页
ARM微控制器工作模式实验.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ARM微控制器工作模式实验一、 实验内容1 使用MRS/MSR指令切换工作模式,并初始化各种模式下的堆栈指针2 观察ARM微控制器在各种模式下寄存器的区别二、 实验程序三、 实验步骤1启动ADS1.2,使用ARM Executable Image 工程模版建立一个工程MODE。2建立汇编源文件TEST7.S,编写实验程序,然后添加到工程中。3根据上一次实验的步骤设置工程连接地址4写程序,编写完程序后,进行错误检查,若无误,则进行软件仿真调试。5点击,打开寄存器窗口,选择Current项监视各寄存器的值。6单步运行程序,观察寄存器值的变化观察的过程中显示大写字母表示该位为1;显示小写字母表示该位为0条件码标志位MZCVQ;中断禁止标志位IF;状态标志位T;工作模式:User(用户模式)、FIQ(FIQ中断模式)、IRQ(IRQ中断)、SVC(管理模式)、Abort(中止模式)、Undef(未定义模式)和SYS(系统模式)四、 思考(1) 在用户模式或系统模式下读取SPSR寄存器会有何结果?由于用户模式和系统模式不是异常中断,所以它们没有SPSR.因此在用户模式和系统模式中不要访问SPSR,否则将会产生不可预知的结果。(2) 在非特权模式下能否对CPSR寄存器设置?能否读取CPSR寄存器的值?只有在特权模式下才允许对当前程序状态寄存器CPSR的所有控制位直接进行读/写访问,而在非特权模式下只允许对CPSR的控制位进行间接访问,但可以读取CPSR的值。(3) 在非特权模式下如何使能/禁止IRQ或FIQ中断?使用SWI指令切换到管理模式(4) 程序中能不能通过MSR指令直接修改CPSR中的T位来实现ARM状态/Thumb状态的切换?不能。如果这样做的话不会清空流水线,是不安全的。可以使用BX指令进行状态切换,程序跳转的同时进行状态切换,当程序发生跳转时流水线会被清空,流水线中按原来处理器状态进行取指和译码的指令(与当前处理器状态不符的指令)会被清除,也就不会引起处理器的错误。五、 反思1、BIC Rd,Rn,operand2;位清除指令,即RdRn&(operand2)2、MRS R0,CPSR ;读状态寄存器指令,将CPSR状态寄存器读取,保存到R0中 MSR CPSR_c,#0xd0 ;写状态寄存器指令,CPSR7:0=0xd0,即切换到管理模式 MSRcond psr_fields,#immed_8rPsr CPSR或SPSRfields 指定传送的区域(字母必须为小写)。 c 控制域屏蔽字节(psr【7:0】);x 扩展域屏蔽字

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论