大家好! 在STR710_book_光盘资料的书稿补充中的《第6章 uCOS-II在STR71x微控制器上的移植》中提到: 管理、中止、未定义、中断和快中断与相应异常联系,不适合作为任何的工作模式,而系统模式除了是特权模式外,其他方面与用户模式一样,因而可选的任务模式只有用户模式和系统模式。为了尽量减少任务代码错误对整个程序的影响,缺省的任务模式定为用户模式,可选为系统模式。
以上当然正确,任务模式应该用用户模式。但在具体实现时却:
在函数OSTaskStkInit()中最后 *(--stk) = (INT32U)ARM_SVC_MODE; /* CPSR,(允许IRQ和FIQ中断) */
那么任何任务在启动时都会根据堆栈中CPSR的内容进入管理模式 我的程序确实也是进入了管理模式,这便与用用户模式相矛盾了。 为什么?是它不对吗?如何修改?
|