任务级的任务切换,函数的结构如下: void OSSched(void){
关中断 //!!!这里关闭了中断!!!
如果(不是中断嵌套并且系统可以被调度){
确定优先级最高的任务
如果(最高级的任务不是当前的任务){
调用OSCtxSw(); //!!如在这里切换到一个高优先级的任务,系统的中断不是被关闭了吗?
}
}
开中断
} ========================== 请教的问题是:如调用OSCtxSw()函数时发生了任务切换,程序切换到另一个TASK任务中运行,也也就说在另外一个任务中运行时的 总中断 是被关闭的??? |