爱板网论坛

查看: 139|回复: 0

[经验] ARM处理器工作模式详解

[复制链接]

69

主题

0

好友

598

积分

举人

Rank: 4

  • TA的每日心情
    开心
    前天 16:53
  • 签到天数: 48 天

    连续签到: 1 天

    [LV.5]常住居民I

    发表于 2017-10-25 17:43:25 |显示全部楼层
    一、存储器格式(字对齐)
    Arm体系结构将存储器看做是从零地址开始的字节的线性组合。从零字节到三字节放置第一个存储的字(32位)数据,从第四个字节到第七个字节放置第二个存储的字数据,一次排列。作为32位的微处理器,arm体系结构所支持的最大寻址空间为4GB。
    存储器格式
    1、大端格式:高字节在低地址,低字节在高地址;
    2、小端格式:高字节在高地址,低字节在低地址。
    指令长度
    Arm微处理器的指令长度是32位的,也可以为16位(thumb状态下)。Arm微处理器中支持字节(8位),半字(16位),字(32位)三种数据类型,其中,字需要4字节对齐,半字需要2字节对齐。
    注:所谓的指令长度是一条完整的指令的长度,而不是单纯的mov这3个字母长度。
    二、ARM体系的CPU有两种工作状态
    1、ARM状态:处理器执行32位的字对齐的ARM指令;
    2、Thumb状态:处理器执行16位的、半字对齐的Thumb指令。
    在程序运行的过程中,可以在两种状态之间进行相应的转换。处理器工作状态的转变并不影响处理器的工作模式和相应寄存器中的内容。
    CPU上电处于ARM状态。
    三、ARM体系的CPU有以下7种工作模式
    1、用户模式(Usr):用于正常执行程序;
    2、快速中断模式(FIQ):用于高速数据传输;
    3、外部中断模式(IRQ):用于通常的中断处理;
    4、管理模式(svc):操作系统使用的保护模式;
    5、数据访问终止模式(abt):当数据或指令预取终止时进入该模式,可用于虚拟存储以及存储保护信盈达嵌入式企鹅要妖气呜呜吧久零就要;
    6、系统模式(sys):运行具有特权的操作系统任务;
    7、未定义指令中止模式(und):当未定义的指令执行时进入该模式,可用于支持硬件。
    CPU的模式可以简单的理解为当前CPU的工作状态,比如:当前操作系统正在执行用户程序,那么当前CPU工作在用户模式,这时网卡上有数据到达,产生中断信号,CPU自动切换到一般中断模式下处理网卡数据(普通应用程序没有权限直接访问硬件),处理完网卡数据,返回到用户模式下继续执行用户程序。
    特权模式
    除用户模式外,其它模式均为特权模式(Privileged Modes)。ARM内部寄存器和一些片内外设在硬件设计上只允许(或者可选为只允许)特权模式下访问。此外,特权模式可以自由的切换处理器模式,而用户模式不能直接切换到别的模式。
    异常模式
    特权模式中除系统(system)模式之外的其他5种模式又统称为异常模式。它们除了可以通过在特权下的程序切换进入外,也可以由特定的异常进入。比如硬件产生中断信号进入中断异常模式,读取没有权限数据进入中止异常模式,执行未定义指令时进入未定义指令中止异常模式。其中管理模式也称为超级用户模式,是为操作系统提供软中断的特有模式,正是由于有了软中断,用户程序才可以通过系统调用切换到管理模式。
    (1)用户模式
    用户模式是用户程序的工作模式,它运行在操作系统的用户态,它没有权限去操作其它硬件资源,只能执行处理自己的数据,也不能切换到其它模式下,要想访问硬件资源或切换到其它模式只能通过软中断或产生异常。
    (2)系统模式
    系统模式是特权模式,不受用户模式的限制。用户模式和系统模式共用一套寄存器,操作系统在该模式下可以方便的访问用户模式的寄存器,而且操作系统的一些特权任务可以使用这个模式访问一些受控的资源。

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    手机版|爱板网 |网站地图  

    GMT+8, 2017-12-13 07:42 , Processed in 0.198635 second(s), 9 queries , Memcache On.

    苏公网安备 32059002001056号

    Powered by Discuz!

    回顶部