在ARMV7中,规定了7-9种工作模式:user、system、svc、irq、fiq、undef、abort、secure monitor+、hypervior+
又将这些模式分成了4种异常特权等级:
- UnPrivilege
- Privilege
- Secure Monitor
- Hypervisor
那么这4种特权等级之间,是怎样来回切换的呢? 如下图所示,描述了异常等级之前切换的方法:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TP35ENBRlT6VkaNBDOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL1ADN3UTOzIjMxIDNwEjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
在ARMV7中,规定了7-9种工作模式:user、system、svc、irq、fiq、undef、abort、secure monitor+、hypervior+
又将这些模式分成了4种异常特权等级:
那么这4种特权等级之间,是怎样来回切换的呢? 如下图所示,描述了异常等级之前切换的方法: