嵌入式系统设计及开发马文华课后答案
    其次章
    一.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 ;0x00000000复位
    LDR PC, Undef_Addr ;0x00000004未定义异样
    LDR PC, SWI_Addr ;0x00000008软件中断
    LDR PC, PAbt_Addr ;0x0000000C预取指中止
    LDR PC, DAbt_Addr ;0x00000010数据中止
    NOP ;0x00000014保留;
    LDR PC, IRQ_Addr
    LDR PC, [PC, #-0x0FF0] ;0x00000018中断
    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的I位置为0.当允许FIQ中断时,CPSR【6】=0即CPSR的F位为0。
    假如2个中断同时发生时,因为FIQ拥有最高中断优先级,而IRQ惟独中等中断优先级,所以先执行FIQ中断(CPSR【7】=0),当中断结束后再执行IRQ中断(CPSR【6】=0)FIQ: CPSR[4:0]=0B10001 //进入FIQ模式
    IRQ: CPSR[4:0]=0B10010 //进入IRQ模式
    CPSR[5]=0 //在ARM状态执行
    CPSR[6]=0 // 允许FIQ中断

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。