另外,还有个疑惑,我觉得按CM3手册《李岩 ARM CM3 权威指南》,CM3设计初衷,其中的非特权模式(Unprivileged)使用于用户任务,PendSV用于OS的任务切换,那么就有二个问题:
a 在Unprivileged模式下不能执行MRS/MSR以及CPS指令,也就是说在用户任务中不能开关中断,那么采用类似于uCos II的OS中CM3就不能运行在Unprivileged模式下,否则uCos II中的各种系统调用都不能用(不会建议用SVC切换CM3
特权模式再开关中断吧?);
b NVIC的寄存器不能在Unprivileged模式下操作,那么也就不能关起PendSV了,难道也先要切换到Privileged模式再挂起PendSV? 基于以上CM3若在Unprivileged模式下开放CPS指令和挂起PendSV,uCos II就可以完美的利用CM3的Unprivileged模式下的安全保护特性了.