对ucos任务级任务切换和中断级任务切换的理解

任务切换和平台有关,因此ucos用汇编语言实现了两种切换方式,我的理解是这样的,也不知道是否正确:

1. 任务级任务切换,由用户发起,在任务里面调用,自己直接触发或者根据某种条件判断来触发,在切换函数里面需要自己去保存当前任务的上下文到任务堆栈里面

2. 中断级任务切换,在退出中断的时候触发,通过OSIntExit()函数调用,后面的理解比较关键了,也可能是错误的,当前任务的上下文保存由系统中断自己完成,不需要用户去做,用户需要做的就是找到当前就绪的最高优先级的任务,然后从它的堆栈里面恢复上下文接着执行,相当任务切换的前半部分工作由中断去完成,后半部分由用户去完成

你可能感兴趣的:(对ucos任务级任务切换和中断级任务切换的理解)