赞
踩
ARM内核架构(二)——ARM处理器7种工作模式
小狼@http://blog.csdn.net/xiaolangyangyang
一、ARM处理器7种工作模式(特权模式 特权模式异常模式)
处理器工作模式 | 说明 | ||
用户(user,usr)模式 | 正常程序运行模式 | ||
快速中断(FIQ,fiq)模式 | 异常模式 | 特权模式 privileged modes | 快速中断处理 |
外部中断(IRQ,irq)模式 | 普通中断处理 | ||
超级用户(supervisor,svc)模式 | 提供操作系统使用的一种保护模式,swi命令状态 | ||
数据访问终止(abort,abt)模式 | 用于虚拟存储和存储保护 | ||
未定义指令终止(undefined,und)模式 | 用于支持通过软件仿真硬件的协处理 | ||
系统(system,sys)模式 | 用于运行特权级的操作系统任务 |
CPU的模式可以简单的理解为当前CPU的工作状态,比如:当前操作系统正在执行用户程序,那么当前CPU工作在用户模式,这时网卡上有数据到达,产生中断信号,CPU自动切换到一般中断模式下处理网卡数据(普通应用程序没有权限直接访问硬件),处理完网卡数据,返回到用户模式下继续执行用户程序
特权模式
除用户模式外,其它模式均为特权模式(Privileged Modes)。ARM内部寄存器和一些片内外设在硬件设计上只允许(或者可选为只允许)特权模式下访问。此外,特权模式可以自由的切换处理器模式,而用户模式不能直接切换到别的模式
异常模式
特权模式中除系统(system)模式之外的其他5种模式又统称为异常模式。它们除了可以通过在特权下的程序切换进入外,也可以由特定的异常进入。比如硬件产生中断信号进入中断异常模式,读取没有权限数据进入中止异常模式,执行未定义指令时进入未定义指令中止异常模式。其中管理模式也称为超级用户模式,是为操作系统提供软中断的特有模式,正是由于有了软中断,用户程序才可以通过系统调用切换到管理模式
Linux操作系统使用了其中USR和SVC模式、出现异常时还可能通过进入其他模式转为Linux内核态
MMU种有存储访问权限控制功能,访问没有权限的地址时,会产生Permission fault中断
参考文献:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。