特权级与非特权级
2026/10/1小于 1 分钟
CPU有两种运行模式,一个是线程模式,一个是处理模式

对一些程序的权限呢,我们要做一些划分,权限高的就可以用一些比较底层的汇编指令

对这个特殊寄存器control register来进行编程可以控制当前的特权级别和栈


在这里面,将control寄存器的第零位给它置1,变为非特权级

变为非特权级之后,不能再对一些寄存器进行访问,比如说系统定时器NVIC,SCB那里的一些寄存器
这里的话我们切换到非特权级之后还在访问NVC的寄存器,这里就会发生总线错误,我们打开这个keil里面的这个调试的这个寄存器,我们就可以发现当前是总线错误,地址E00开头是SCB的某个寄存器


