ARM有7种工作模式,用户模式,系统模式,IRQ模式,FIQ模式,用SWI进入的管理模式,数据中止模式,指令中止模式。
一般用户的程序可以放在用户模式下。SWI管理模式一般可用用户调用SWI指令来进入,在SWI管理模式下,进行操作系统函数的调用。
我在看UCOS移植的文件中,有的在进行系统调用是,用SWI进入管理模式,然后还要用msr cpsr ,r0;等指令是ARM进入系统模式,不知道他们在模式转换的依据时什么??????有没有这样的依据,规定ARM在什么代码性质下要进入什么工作模式??????困惑! |