ARM嵌入式系统设计习题课.ppt

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ARM嵌入式系统设计习题课

ARM嵌入式系统习题课;第二章 ARM7 体系结构;2、定义R0 =0假设使用存储指令将R0的值放在0x4000单元中。如果存储器格式为大端格式,请写出在执行加载指令将存储器0x4000单元内容取出存放到R2寄存器操作后所得R2的值。如果存储器改为小端格式,所得的R2值又为多少?低地址0x4000单元的字节内容分别是多少? ;3、请描述一下ARM7TDMI产生异常的条件是什么?各种异常会使处理器进入哪种模式?进入异常时内核有何操作?各种异常的返回指令又是什么? (1)只要正常的程序流暂时被中止,处理器就会进入异常模式。例如在用户模式下执行程序时,当外设向处理器内核发出中断请求导致内核从用户模式切换到异常中断模式。 (2)软件中断异常(SWI)、未定义的指令、中止(预取中止、数据中止)、快速中断(FIQ)、中断(IRQ)、复位。 (3)a、将异常处理程序的返回地址(加固定的偏移量)保存到相应的异常模式下的LR,异常处理程序完成后的返回可通过将LR的值减去偏移量后写入PC; b、将CPSR的当前值保存到相应异常模式下的SPSR; c、设置CPSR为相应的异常模式 d、设置PC为相应异常处理程序的中断入口向量地址,跳转到相应的异常中断处理程序执行。 ;(4) 中断 SUBS PC,R14_irq,#4 快速中断(FIQ) SUBS PC,R14_fiq,#4 未定义的指令 MOVS PC,R14_und 预取指中止 SUBS PC,R14_abt,#4 数据中止 SUBS PC,R14_abt,#8 软件中断异常 MOVS PC,R14_svc 复位 无 注:“MOVS PC,R14_svc” 是指在管理模式下执行“MOVS PC,R14”;第三章 ARM7TDMI(-S)指令系统;(6) CMP指令是如何执行的?写一程序,判断R1的值是否大于0x30,是则将R1减去0x30。 答:CMP指令是将寄存器Rn的值减去operand2的值,根据操作的结果更新CPSR中的相应条件标志位,以便后面的指令根据相应的条件标志来判断是否执行。 比如: CMP {cond} Rn,operand2 CMP R1,#0x30 ;将R1与常数0x30比较 LDRLE PC,LR;如果小于或等于0x30,则程序返回 SUB R1,R1,#0x30;大于0x30,则将R1减去0x30,结果存回R1 (7)调用子程序是用B指令还是用BL指令?请写出返回子程序的指令。 答:调用子程序是用BL指令; MOV PC,LR 或 BX LR ;(8)请指出LDR伪指令的用法。指令格式与LDR加载指令的区别是什么? 答:LDR伪指令用于加载32位的立即数或一个地址值到指定的寄存器,它还常用于加载芯片外围功能部件的寄存器地址(32位立即数),一实现各种控制操作,与ARM指令的LDR相比,伪指令的LDR的参数有“=”号。 比如:LDR R0, =0 2、(1)0xFFFF000F (A) +0x0000FFF1 (B) -------------------- 0 NZCV=0110 如果两个操作数是有符号的,A是负数,B是正数,和是0,没有溢出,所以V=0。 如果两个操作数是无符号数,和是0,有进位,所以C=1。 ;(2)

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档