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