为提高系统的稳定性,处理器会被分成多种工作模式,不同工作模式的权限不同。Cortex-M3 或 者 M4 内核的的芯片分为特权模式和非特权模式,特权模式下 CPU 完全控制芯片而非特权模式下不能操作某些特殊的寄存器。i.MX6U/ imx8 作为一款应用处理器,将 CPU 工作模式进一步细分,支 持九种工作模式下表所示。
结合上表处理器的各种工作模式讲解如下:
i.MX 6U 特权等级从低到高被分为 3 个等级(PL0~PL2)
• User 用户模式,用户模式是相对于 Linux 系统来说的,有 Linux 的情况下 Linxu 应用程序运 行在 User 模式,用户模式属于PL0。用户模式下的执行有时被描述为“无特权执行”对系统来说 User 是安全的,User 程 序不会破坏系统。
• FIQ 快速中断模式,当发生 FIQ 中断后 CPU 就会进入 FIQ 模式,FIQ 即“快速中断”。
• IRQ 中断模式,当发生 IRQ 中断后 CPU 会进入中断模式。
• Supervisor 管理模式,相比用户模式管理模式权限更高,在该模式下我们可以操作所有的 寄存器。系统上电(复位)后 CPU 默认处于该模式,我们的裸机程序也是运行在管理模式。
• Monitor mode 监听模式,就像后台服务,这个模式主要用来安全扩展模式,只用于安全(七种arm工作模式中没有)
• Abort mode 终止模式,CPU 读取数据错误或者预取错误发生时将会进入终止模式。终止模 式可以认为系统“挂了”。
• Hyp mode 超级的监视模式,它主要用于一些虚拟化的扩展。 (七种arm工作模式中没有)
• Undefined mode 未定义指令异常模式,当 CPU 加载到一个无法识别的指令后将会进入该模 式,同终止模式一样,是不正常的。
• System 系统模式,以系统模式执行的软件在 PL1 处执行。系统模式具有与用户模式相同的 可用寄存器。