收藏 分销(赏)

ARM微控制器工作模式实验.doc

上传人:仙人****88 文档编号:6114212 上传时间:2024-11-28 格式:DOC 页数:5 大小:169.50KB 下载积分:10 金币
下载 相关 举报
ARM微控制器工作模式实验.doc_第1页
第1页 / 共5页
ARM微控制器工作模式实验.doc_第2页
第2页 / 共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 ;位清除指令,即Rd←Rn&(~operand2) 2、MRS R0,CPSR ;读状态寄存器指令,将CPSR状态寄存器读取,保存到R0中 MSR CPSR_c,#0xd0 ;写状态寄存器指令,CPSR[7:0]=0xd0,即切换到管理模式 MSR{cond} psr_fields,#immed_8r Psr CPSR或SPSR fields 指定传送的区域(字母必须为小写)。 c 控制域屏蔽字节(psr【7:0】); x 扩展域屏蔽字节(psr【15:8】); s 状态域屏蔽字节(psr【23:16】); f 标志域屏蔽字节(psr【31:24】);
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 小学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服