会员中心 我自己做 机器人玩具                  

当前位置 :机器人首页>机器人技术文章>ARM技术>
热门关键字: asimo  管道机器人图片  机器人  中国  水上机器人
[机器人技术文章]ARM基础知识      
时间:2008-05-10   来源:机器人   作者:Jiqiren.net  关注指数:

***M控制位***

M控制位控制处理器模式,具体含义如下:

 M[4:0]       处理器模式      可访问的寄存器

 ob10000  user                  pc,r14~r0,CPSR

 0b10001  FIQ                   PC,R14_FIQ-R8_FIQ,R7~R0,CPSR,SPSR_FIQ

 0b10010  IRQ                   PC,R14_IRQ-R13_IRQ,R12~R0,CPSR,SPSR_IRQ

 0B10011  SUPERVISOR     PC,R14_SVC-R13_SVC,R12~R0,CPSR,SPSR_SVC

 0b10111  ABORT             PC,R14_ABT-R13_ABT,R12~R0,CPSR,SPSR_ABT

 0b11011  UNDEFINEED     PC,R14_UND-R8_UND,R12~R0,CPSR,SPSR_UND

 0b11111  SYSTEM           PC,R14-R0,CPSR(ARM V4以及更高版本)


***CPSR中的其他位***
这些位用于将来扩展。应用软件不要操作这些位。
在ARM体系中通常有以下3种方式控制程序的执行流程:
**在正常执行过程中,每执行一条ARM指令,程序计数器(PC)的值加4个字节;每执行一条Thumb指令,程序计数器寄存器(PC)加2个字节。整个过程是按顺序执行。
**跳转指令,程序可以跳转到特定的地址标号处执行,或者跳转到特定的子程序处执行。其中,B指令用于执行跳转操作;BL指令在执行跳转操作同时,保存子程序的返回地址;BX指令在执行跳转操作同时,根据目标地址为可以将程序切换到Thumb状态;BLX指令执行3个操作,跳转到目标地址处执行,保存子程序的返回地址,根据目标地址为可以将程序切换到Thumb状态。
**当异常中断发生时,系统执行完当前指令后,将跳转到相应的异常中断处理程序处执行。当异常中断处理程序执行完成后,程序返回到发生中断指令的下条指
令处执行。在进入异常中断处理程序时,要保存被中断程序的执行现场,从异常中断处理程序退出时,要恢复被中断程序的执行现场。
ARM中异常中断的种类
**复位(RESET)**
当处理器复位引脚有效时,系统产生复位异常中断,程序跳转到复位异常中断处理程序处执行。复位异常中断通常用在下面几种情况下:系统加电时;系统复位时;跳转到复位中断向量处执行成为软复位。

**未定义的指令**
当ARM处理器或者是系统中的协处理器认为当前指令未定义时,产生未定义的指令异常中断,可以通过改异常中断机制仿真浮点向量运算。

**软件中断**
这是一个由用户定义的中断指令。可用于用户模式下的程序调用特权操作指令。在实时操作系统中可以通过该机制西线系统功能调用。

**指令与取终止(PrefechAbort)**
如果处理器预取的指令的地址不存在,或者该地址不允许当前指令访问,当被预取的指令执行时,处理器产生指令预取终止异常中断。

**数据访问终止(DATAABORT)
如果数据访问指令的目标地址不存在,,或者该地址不允许当前指令访问,处理器产生数据访问终止异常中断

**外部中断请求(IRQ)**
当处理器的外部中断请求引脚有效,而且CPSR的寄存器的I控制位被清除时,处理器产生外部中断请求异常中断。系统中个外设通过该异常中断请求处理服务。

**快速中断请求(FIQ)**
当处理器的外部快速中断请求引脚有效,而且CPSR的F控制位被清除时,处理器产生外部中断请求异常中断

异常中断向量表及异常中断优先级
中断向量表指定了个异常中断及其处理程序的对应关系。他通常存放在存储地址的低端。在ARM体系中,异常中断向量表的大小为32字节,其中每个异常中断占据4个字节大小,保留了4个字节空间。
每个异常中断对应的中断向量表中的4个字节的空间中存放了一个跳转指令或者一个向PC寄存器中赋值的数据访问指令。通过这两种指令,程序将跳转到相应的异常中断处理程序处执行。当几个异常中断同时发生时,就必须按照一定的次序来处理这些异常中断。

各个异常中断的中断向量地址以及中断的处理优先级

中断向量地址           异常中断类型             异常中断模式               优先级(6最低)

0x00                   复位                     特权模式                   1

0x04                   未定义的指令             未定义指令终止模式         6

0x08                   软件中断                 特权模式                   6

0x0C                   指令预取终止             终止模式                   5

Tags:ARM基础    

     
到现在才向上顶了2
我来顶一下
上一篇:[机器人技术文章]ARM开发入门
下一篇:一步步教你在KEIL UV3上建立自己的ARM工程




  • 揭開人類机器人的智慧
    地球上最强悍的四足机器人(美国军用)-机器人(Jiqiren.net) 图片
    美军用拆弹机器人