嵌入式系统期末复习(2)
ARM处理器共有7种不同的处理器模式,每种模式都有一组相应的寄存器组,最多可以18个活动的寄存器。
寄存器R0~R7为未分组的通用寄存器,它们在任何处理器模式都对应于相同的32位物理寄存器。
寄存器R8~R12有两个分组的物理寄存器。一个用于除FIQ模式之外的所有寄存器模式,另一个用于FIQ模式。
在发生FIQ中断后,处理器不必为保护寄存器而浪费时间,从而加速了FIQ的处理速度。
寄存器R13、R14分别有6个分组的物理寄存器。1个用于用户和系统模式,其余5个分别用于5种异常模式。
寄存器R13通常作为堆栈指针(SP),用于保存待使用的寄存器的内容。
寄存器R14称为链接寄存器(LR),在结构上有两个特殊功能:
? 当使用BL指令调用子程序时,返回地址将自动存入R14中;
? 当发生异常时,将R14对应的异常模式版本设臵为异常返回地址(有些异常有一个小的固定偏移量)。
寄存器R15称为程序计数器(PC),它指向正在“取指”的指令。 寄存器CPSR为当前程序状态寄存器,在异常模式中,另外一个寄存器“程序状态保存寄存器(SPSR)”可以被访问。每种异常都有自己的SPSR,在进入异常时它保存CPSR的当前值,异常退出时可通过它恢复CPSR。
6
ARM和Thumb状态切换过程
1. 系统复位,自动切换到ARM状态。
2. 通过BX和BLX指令改变当前处理器模式,使之从ARM状态切换到Thumb状态。
3. 在Thumb状态下,正常程序执行时产生中断异常。 4. 处理器进入中断异常,自动的将模式切换到ARM状态。 5. 异常处理完毕,返回正常程序,此时处理器自动的将模式切换到Thumb状态。
6. 再次通过BX和BLX指令改变当前处理器模式,使之从Thumb状态切换到ARM状态。
ARM内核包含1个CPSR和5个仅供异常处理程序使用的
SPSR。CPSR反映当前处理器的状态,其包含:
? 4个条件代码标志(负标志N、零标志Z、进位标志C和溢出标志V );
? 2个中断禁止位(IRQ禁止与FIQ禁止); ? 5个对当前处理器模式进行编码的位(M[4:0]); ? 1个用于指示当前执行指令的位(ARM指令还是Thumb指令)。
条件代码标志
各标志位的含义如下:
? 负标志N:运算结果的第31位值,记录标志设臵操作的结果; ? 零标志Z:如果标志设臵的操作为0,则臵位;
7
? 进位标志C:记录无符号加法溢出,减法无借位,循环移位; ? 溢出标志V:记录标志设臵操作的有符号溢出。 处理器状态位T;
当控制位T臵位时,处理器正在Thumb状态下运行 当控制位T清零时,处理器正在ARM状态下运行。 当控制位I臵位时,IRQ中断被禁止; 当控制位F臵位时,FIQ中断被禁止。
警告:绝对不要强制改变CPSR寄存器中的控制位T。如果这样做,处理器将进入一个无法预测的状态。 存储器系统有两种映射机制:
小端存储器系统: 在小端格式中,数据的高字节存放在高地址中。 大端存储器系统:在大端格式中,数据的高字节存放在低地址中。 小端存储模式下,0x12345678在A地址开始的一个字空间的存储(1); 0x12 0x78 0x34 0x56 0x56 0x34 0x78 0x12 (1) (2)
大端存储模式下,0x12345678在A地址开始的一个字空间的存储(2); ARM体系的异常 异常的进入
? 将异常处理程序的返回地址(加固定的偏移量)保存到相应异
8
常模式下的LR;
? 将CPSR的当前值保存到相应异常模式下的SPSR; ? 设臵CPSR为相应的异常模式;
? 设臵PC为相应异常处理程序的中断入口向量地址,跳转到相应的异常中断处理程序执行; 异常的退出
当异常处理程序结束时,异常处理程序必须:
? 返回到发生异常中断的指令的下一条指令处执行,即就是说将LR中的值减去偏移量后移入PC; ? 将SPSR的值复制回CPSR;
? 清零在入口处臵位的中断禁止标志。
1.MOV指令与LDR指令都是往目标寄存器中传送数据,但是它们有什么区别吗?
MOV指令用于将数据从一个寄存器传送到另一个寄存器中,或者将一个常数传送到一个寄存器中,但是不能访问内存。LDR指令用于从内存中读取数据放入寄存器中。 2.以下8位图立即数是否合法? 0x0103C000 ×
0x12800000 可以由0x4A循环右移10位得到 3.请列举2个8位图立即数? 0x4000003B(0xED循环右移2位)
9
0x0016C000(0x5B循环右移18位) ? Rm,shift——寄存器移位方式 例如:
ADD R1,R1,R1,LSL #3 ;R1=R1+R1*8=9R1 SUB R1,R1,R2,LSR R3 ;R1=R1-(R2/2R3)
4.用R1寄存器的最低字节替换掉R2寄存器的最低字节,并不影响条件标志位?
AND R1,R1,#0x000000FF AND R2,R2,#0xFFFFFF00 ORR R2,R2,R1
5. 使用MSR和MRS指令,通过修改CPSR寄存器,实现打开/关闭IRQ中断的两个子程序,注意不能影响其它位? ;子程序:使能IRQ中断 Enable_IRQ
MRS R0, CPSR BIC R0, R0,#0x80 MSR CPSR_c,R0 MOV PC,LR
;1.将CPSR寄存器内容读出到R0; ;2.修改对应于CPSR中的I控制位; ;子程序:禁能IRQ中断 Disable_IRQ
10
…… 此处隐藏:514字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [资格考试]机械振动与噪声学部分答案
- [资格考试]空调工程课后思考题部分整合版
- [资格考试]电信登高模拟试题
- [资格考试]2018年上海市徐汇区中考物理二模试卷(
- [资格考试]坐标转换及方里网的相关问题(椭球体、
- [资格考试]语文教研组活动记录表
- [资格考试]广东省2006年高应变考试试题
- [资格考试]LTE学习总结—后台操作-数据配置步骤很
- [资格考试]北京市医疗美容主诊医师和外籍整形外科
- [资格考试]中学生广播稿400字3篇
- [资格考试]CL800双模站点CDMA主分集RSSI差异过大
- [资格考试]泵与泵站考试复习题
- [资格考试]4个万能和弦搞定尤克里里即兴弹唱(入
- [资格考试]咽喉与经络的关系
- [资格考试]《云南省国家通用语言文字条例》学习心
- [资格考试]标准化第三范式
- [资格考试]GB-50016-2014-建筑设计防火规范2018修
- [资格考试]五年级上册品社复习资料(第二单元)
- [资格考试]2.对XX公司领导班子和班子成员意见建议
- [资格考试]关于市区违法建设情况的调研报告
- 二0一五年下半年经营管理目标考核方案
- 2014年春八年级英语下第三次月考
- 北师大版语文二年级上册第十五单元《松
- 2016国网江苏省电力公司招聘高校毕业生
- 多渠道促家长督导家长共育和谐 - 图文
- 2018 - 2019学年高中数学第2章圆锥曲线
- 竞争比合作更重要( - 辩论准备稿)课
- “案例积淀式”校本研训的实践与探索
- 新闻必须客观vs新闻不必客观一辩稿
- 福师大作业 比较视野下的外国文学
- 新编大学英语第二册1-7单元课文翻译及
- 年产13万吨天然气蛋白项目可行性研究报
- 河南省洛阳市2018届高三第二次统一考试
- 地下车库建筑设计探讨
- 南京大学应用学科教授研究方向汇编
- 2018年八年级物理全册 第6章 第4节 来
- 毕业论文-浅析余华小说的悲悯性 - 以《
- 2019年整理乡镇城乡环境综合治理工作总
- 广西民族大学留学生招生简章越南语版本
- 故宫旧称紫禁城简介




