ucos-iii学习之上下文切换

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34401994/article/details/78089055

1.上下文切换的定义?
当 uC/OS-III 转向执行另一个任务的时候,它保存了当前任务的CPU 寄存器到堆栈。并从新任务的的堆栈中 CPU 寄存器载入 CPU。这个过程叫上下文切换。
共有两种上下文切换方式:一个是任务级,一个是优先级。
任务级:OSCtxSw()。
中断级:OSIntCtxSw()。
2.总结
上下文切换包括两部分内容,保存就任务的内容,载入新任务的内容。
任务级切换时,通过调用 OSSched()实现。中断级切换时,通过调用 OSIntExit()实现。
OSSched()中调用 OSCtxSw()实现上下文切换。OSIntExit()中调用OSIntCtxSw()实现上下文切换。然而,OSIntCtxSw()只需用做上下文切换的第二部分,因为中断时被中断任务的 CPU 寄存器已经被保存到被中断任务的堆栈中了。

猜你喜欢

转载自blog.csdn.net/qq_34401994/article/details/78089055