完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
疑惑:UCOSIII中的任务调度和任务切换有什么区别?
原子哥在PPT里面的解释是:任务调度就是中止当前正在运行的任务转而去执行其他的任务。 当UCOSIII需要切换到另外一个任务时,它将保存当前任务的现场到当前任务的堆栈中,主要是CPU寄存器值,然后恢复新的现场并且执行新的任务,这个过程就是任务切换。 问题:1.他们的区别是任务切换有保存现场,而任务调度没有保存现场吗? 2.中止当前运行的任务是完全结束当前任务吗?还是说转而执行其他任务,其他任务结束完成之后再回过头来继续之前没有完成的任务? 在学习UCOSIII有点困惑,希望大神指导一下。万分感激! |
|
相关推荐
1 条评论
4个回答
|
|
|
任务级切换函数为:OSCtxSw(). 任务级调度器为:OSSched() 查阅了《STM32F1 UCOS开发手册》之后发现了这段,也就是说任务级调度器包含了任务切换函数。他们之间是包含与被包含的关系。大致也可以理解为同一个东西。楼上的解释也有一定道理。
|
|
|
|
|
|
没深入学过ucos的概念的东西,但是我的理解就是同一个东西,ucos里面任务的切换离不开OSSched,不管你任务中delay或者是post之类引起调度,还是系统本身根据时间片轮转,最后都是要调用这个函数,都需要保存寄存器的。我感觉你理解错了,不过我只是字面理解,具体概念是否有区别我没学过。
另外就是OSSched中的保存寄存器的调用部分应该可以优化,我看着很明显,不过暂时没时间实验,等新项目完成了再实验下我我的想法。希望有研究过的高手可以说说。 |
|
|
|
|
|
我认为没区别,中文不同而已。但楼主如果问某俩API的区别,倒是可以说得清。
|
|
|
|
|
|
哦哦,多谢提醒,我找到答案了。
|
|
|
|
|
只有小组成员才能发言,加入小组>>
1018 浏览 1 评论
1849 浏览 0 评论
1830 浏览 1 评论
3254 浏览 5 评论
3581 浏览 9 评论
1020浏览 1评论
1849浏览 1评论
如何知道嵌入式电子控制单元 (ECU) 中的RAM使用情况?
1359浏览 1评论
1851浏览 0评论
1177浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 21:47 , Processed in 0.715087 second(s), Total 93, Slave 69 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1807