系统学习ARM之一 --ARM简介

来源:互联网 发布:oracle数据库cpu过高 编辑:程序博客网 时间:2024/05/16 01:25

转载自http://blog.csdn.net/qqliyunpeng/article/details/48717671 


FS4412所处的位置是Cortex-A9

        

一、3、 8、 7:

1. ARM处理器的 3 种状态

      ARM处理器正在运行那种指令,就处在那种状态

      (1)ARM状态        --- 运行ARM指令

      (2)Thumber状态 --- Thumber指令

      (3)Java状态         --- java字节码

2. ARM 有8个基本工作模式

(1)为什么分不同的工作模式

    保护和管理资源(工作寄存器)

    非特权模式:   

        User : 非特权模式,大部分任务执行在这种模式

    特权模式  :  

        非异常模式  System : 使用和User模式相同寄存器集的特权模式

        异常模式    

            外部异常  

                FIQ :   当一个高优先级(fast) 中断产生时将会进入这种模式

                IRQ :   当一个低优先级(normal) 中断产生时将会进入这种模式

            内部异常 

                Supervisor /svc:当复位或软中断指令执行时将会进入这种模式

                Abort : 当存取异常时将会进入这种模式

                Undef : 当执行未定义指令时会进入这种模式

                Monitor : 是为了安全而扩展出的用于执行安全监控代码的模式;

3. 7种异常源

                                5种异常模式

    (1)复位异常                 ---- SVC 工作模式

    (2)软中断异常             ---- SVC 工作模式

    (3)IRQ异常                  ---- IRQ 工作模式

    (4)FIQ异常                  ---- FIQ 工作模式

    (5)未定义指令异常      ---- undef 工作模式

    (6)指令存取异常         ---- abortd 工作模式

    (7)数据存取异常         ---- abort 工作模式

异常处理的向量表

    (1)放在确切的地址

     (2)一共32个字节,对应7种异常发生时跳转的地址,和1种保留

     (3)7种异常的相对位置是固定的

二、寄存器:

1. ARM工作寄存器

  • ARM处理器的运行,需要一组寄存器(工作寄存器)。每种工作模式,都对应一组工作寄存器。
  • ARM处理器工作模式的切换,实质是工作寄存器的切换。能公用的保留,不能共用的使用自己模式的寄存器替换。

2. 工作寄存器的总结

①R0-R7 所有的模式都共用

②R8-R12 除了FIQ模式外,其他模式都共用

③R13、R14寄存器 每种模式都是私有

     R13 -- sp

     R14 -- lr

④R15  所有模式都是共用

     R15 -- PC

⑤CPSR -- 所有模式都是共用

⑥SPSR -- 除了user和system模式没有、其他模式都是私有

         user和system都是主动进入的,不需要保存SPSR

3. CPSR寄存器 -- 程序状态寄存器


    前4后8

        前4 条件位 NZCV   表征的是ALU运算结果

         N = Negative result from ALU

        Z = Zero result from ALU

        C = ALU operation Carried out or  borrow

        V = ALU operation oVerflowed

    后8

        M[4:0]  处理器模式

        T       处理器状态  T=1 thumber状态 T=0 ARM状态

        I、F    外部中断的禁止为  写1禁止

4. 程序计数器PC (r15)

     PC寄存器存放的是即将运行的指令的地址

三、异常处理的过程:

1. 异常处理

异常处理硬件自动操作:(四大步三小步)

(1)拷贝 CPSR 到 SPSR_<mode>

(2)设置适当的 CPSR 位:                               

         1--改变处理器状态进入 ARM 态

         2--改变处理器模式进入相应的异常模式

         3--设置中断禁止位禁止相应中断 (如果需要)

(3)保存返回地址到 LR_<mode>

(4)设置 PC 为相应的异常向量

     注意是硬件处理,不需要软件实现。

返回时:

回时, 异常处理需要:

        从 SPSR_<mode>恢复CPSR

        从 LR_<mode>恢复PC

2. 异常处理的向量表

(1)放在确切的地址

(2)一共32个字节,对应7种异常发生时跳转的地址,和1种保留

(3)7种异常的相对位置是固定的

四、字节序:

小端:数据顺时针旋转后放到存储器上,arm是小端存储

    0x11223344

        

大端:逆时针旋转

五、ARM核的结构:

原创粉丝点击