• ARM的编程模式和7种模式


    ARM采用的是32位架构

    ARM阅读

        --Byte:        8   bits

        --Halfword:  16  bits(2 byte)  半字

        --Word:       32  bits(4 byte)

    大部分ARM core提供:  core(核心)

      --ARM指令集(32 bit)        (有些占内存、时间快)

     --Thumb指令集(16 bit)      (省内存、但是浪费时间)

     --Thumb2指令集(16 & 32bit)(ARM v7(S5PV210) 大概2005年才开始推出) 

    Jazelle cores 支持 Java bytecode

    /************************************************************************************************/

    ARM有7种基本工作模式(6个特权模式和一个用户模式)

    ----User(用户模式): 非特权模式,大部分任务执行在这种模式                     

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

    ----IRQ(普通中断):当一个低优先级(nomal)中断产生时会进入这种模式      |

    ----Supervisor(管理模式):当复位或软中断指令执行时将会进入这种模式        |-------异常模式

    ----Abort(异常模式):当存取异常时会进入这种模式                                    |

    ----Under(未定义模式):当执行未定义指令时会进入这种模式                  -- |

    ----System(系统模式):使用和User模式相同寄存器的特权模式

    注意:

         除了User(用户模式)是Normal(普通模式)外,其他6种都是Privilege(特权模式)。

         Privilege中除Sys模式外,其余5种为异常模式

         各种模式的切换,可以是程序员通过代码主动切换(通过写CPSR寄存器);也可以是CPU在某些情况下自动切换。

         各种模式下权限和可以访问的寄存器不同。

    为什么需要那么多种模式?

    CPU 是硬件,OS是软件,软件的设计要依赖硬件的特性,硬件的设计要考虑软件需要,便于实现软件特性。

    操作系统有安全级别要求,因此CPU设计多种模式为了方便操作系统的多种角色安全等级需要。

    /************************************************************************************************/

  • 相关阅读:
    多级部署下的SuperMap iServer 2.0 JS 聚合功能(一)
    Kubernetes&Docker集群部署
    股票数据存储系统(KeyValue存储)设计与实现
    Ajax+Tornado模拟长、短轮询
    REST架构网站改写:前端MVC Angular.js,Web框架 Express.js, 数据库 MongoDB
    SQLite数据库C++ API封装
    一致性哈希(Consistent Hashing)算法的C++实现
    数据结构——排序
    数据结构——折半查找
    索引学习笔记
  • 原文地址:https://www.cnblogs.com/yygsj/p/4977142.html
Copyright © 2020-2023  润新知