嵌入式系统设计与开发马文华课后答案.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章 一.ARM处理器有什么特点? ARM处理器的三大特点是:耗电少功能强、16位/32位双指令集和合作伙伴众多。 1、体积小、低功耗、低成本、高性能; 2、支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件; 3、大量使用寄存器,指令执行速度更快; 4、大多数数据操作都在寄存器中完成; 5、寻址方式灵活简单,执行效率高; 6、指令长度固定。 二.ARM的那个寄存器作为PC使用?哪个作为LR使用 ARM的寄存器,全部共有37个32位长的寄存器。但ARM核心同时最多只可以有18个同时执行的寄存器:包含了16个通用寄存器和2个状态寄存器,16个通用寄存器中包含了3个专用寄存器,R13、R14和R15。 R13 用作堆栈指针 SP R15用做程序计数器PC, R14用做子程序链接寄存器LR。 三.ARM有几种运行模式?那些具有特权?如何改变处理器的模式? ARM有7中工作模式:用户模式、快速中断模式、外部中断模式、管理模式、数据访问中止模式、未定义指令中止模式、系统模式。 除了用户模式以外,其余所有6种模式称之为特权模式,权限比用户模式高,其中特权模式中除去系统模式外的5种模式称之为异常模式,常用于处理中断或异常,以及需要访问受保护的系统资源等情况。 处理器模式可以通过控制进行切换,也可以通过外部中断或异常处理过程进行切换。大多数的用户程序运行在用户模式下,这时,应用程序不能访问一些受操作系统保护的系统,应用程序也不能直接进行处理器模式切换。当需要进行处理器模式切换时,应用程序可以产生异常处理,在异常处理中进行处理器模式的切换。 四.ARM有几种异常?其异常处理方式和x86有什么不同? 1)复位(Reset)异常(管理模式); 2)未定义指令(undefined instruction)异常(未定义模式); 3)软件中断(SWI)异常(管理模式); 4)指令预取中止(Prefech Abort)异常(中止模式); 5)数据访问中止(Data Abort)(中止模式); 6)快速中断请求(FIQ)(FIQ模式); 7)外部中断请求(IRQ)(IRQ模式)。 机制一样:申请中断、相应中断、中断处理、中断返回 由于硬件不一样,细节上有很大区别,比如ARM的中断向量表: ARM: Vectors LDR PC, Reset_Addr ;0位 LDR PC, Undef_Addr ;0定义异常 LDR PC, SWI_Addr ;0件中断 LDR PC, PAbt_Addr ;0x0000000C预取指中止 LDR PC, DAbt_Addr ;0据中止 NOP ;0留 ; LDR PC, IRQ_Addr LDR PC, [PC, #-0x0FF0] ;0断 LDR PC, FIQ_Addr ;0x0000001C快速中断 X86:偏移量与段地址结合的方式 五.试比较ARM和x86的I/O寻址方式有什么不同? ARM: 立即数寻址:操作数本身直接在指令中给出,取出指令也就获得了操作数,这个操作数也是称为立即数。 寄存器的值为操作数。ARM指令普遍采用此种寻址方式。 寄存器偏移寻址:寄存器偏移寻址是ARM指令集特有的寻址方式。当第二作数是寄存器偏移方式时,第二寄存器操作数在与第一操作数结合之前,选择进行移位操作。 寄存器寻址:第二操作数的移位位数可以用立即数方式或者寄存器方式给出。 寄存器间接寻址:寄存器中的值为操作数的物理地址,而实际的操作数存放在存储器中。 基址加偏址寻址:将寄存器的值与指令中给出的偏移地址址量相加,所得结果作为操作数的物理地址。 堆栈寻址:堆栈寻址用于数据栈与寄存器组之间批量数据传输。当数据写好和读出内存的顺序不同时,使用堆栈寻址可以很好的解决这个问题。 X86: 立即数寻址:操作数包含在指令中,它作为指令的一部分,跟在操作码后存放在代码段。 寄存器寻址:操作数存放在CUP的内部寄存器中。 直接寻址方式:操作数的存储器中,指令中直接包含有操作数的有效地址,默认的段地址在DS段寄存器。 寄存器间接寻址:操作数在存储器中,操作数的有效地址在基址寄存器BX、BP或变址 寄存器SI、DI中。可使用段超越前缀改变 。 寄存器相对寻址:操作数在存储器中,操作数有效地址是一个基址寄存器BX、BP或变址寄存器SI、DI的内容加上指令中给出的位置量之和。 相对基址变址寻址:操作数在存储器中,操作数的有效地址由基址寄存器的内容与变址寄存器的内容及指令中位置量相加得到,可用段超越前缀改变。 六.若允许FIQ和IRQ中断,CPSR应该如何处置? 当允许IRQ中断时,CPSR【7】=0即CPSR的

文档评论(0)

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

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

1亿VIP精品文档

相关文档