初学UCOS多任务调度,总是有这样一个疑惑:为什么多使用多任务,写多个函数不就可以了吗?随着不断学习,后面终于有了一个答案。多任务是并发执行,每个任务都做一点;多函数是一个执行完才会执行下一个,这样就不能愉快的边听歌边看歌词了。
UCOS多任务中 的每一个任务都是一个死循环,通过任务调度就可以让每个任务并发工作(这里的并发不是指同时工作,而是轮流占用CPU的意思)。说到这里,可能有的人还是不明白任务调度是怎么实现任务的切换的呢?其实用的就是指针,通过指针的指向让每一个任务从一个死循环中切换到另一个任务。学习UCOS过程中,你可能还会碰到这几个名词:任务堆栈、任务控制块。任务堆栈就是任务在切换时,保存当前的值和位置,等任务切换回来时,再从这个位置继续执行下去;任务控制块就是来记录任务堆栈指针,任务优先级,简单来说就是记录这个任务切换到哪个任务去,它的优先级值是多少。
粗浅之见,如有不妥,恳请指出,不幸感激!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)