完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
UCOS 任务切换调用OStimeDlyHMSM延时函数,延时结束后会立即返回原来的任务吗?
比如说这时候有更高优先级的任务正在执行,但是延时的时间到了,那么会立即返回吗。 还有一个问题,比如我用OSTimeDlyHMSM延时了一秒,然后也会切换任务,这时候我切换的那个任务执行完了也会执行OSTimeDlyHMSM语句吧,这样又有一次任务切换,然后进入再一次任务等等等,这样一秒的时间早晚会用完,并且时间差都差不多,感觉这样会出问题啊 |
|
相关推荐
5个回答
|
|
这个是不会准确的,要准确还是采用定时器吧! OS有个任务优先级的抢占,如果你当前的任务级别是最高的,你说的这个情况是成立的,延迟时间到后,反回你的函数下一行代码,但这中间如果有便件中断或更高级别的任务发生,就算是时间到了,当前任务依然无法得到CPU的使用权。
|
|
|
|
OSTimeDlyHMS延时结束以后不一定会返回原来的任务!延时结束以后系统会重新查找下一个就绪了的优先级最高的任务,原来的任务不一定是优先级最高的。
|
|
|
|
谢谢!
还有一个问题也有点不懂,任务A切换时调用OSTimeDlyHMSM函数后进入当前优先级最高的任务B,所以任务A的OSTimeDlyHMSM,只会进行一次任务切换吗,如果再切换到任务C就是任务B的OSTimeDlyHMSM起作用了吗? |
|
|
|
谢谢!请问调用OSTimeDlyHMSM是不是会发生两次任务调度,第一次是刚开始执行这个函数时,第二次是时间到了的时候?
|
|
|
|
UCOS运行的机制就是任务调度,OSTimeDlyHMSM的延时时间到了就会进行一次任务调度,查看就绪的任务,最高优先级的最先运行,依次类推,把就绪的任务运行完。
|
|
|
|
只有小组成员才能发言,加入小组>>
793 浏览 0 评论
1152 浏览 1 评论
2528 浏览 5 评论
2861 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2711 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1071浏览 3评论
194浏览 2评论
456浏览 2评论
369浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
454浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 19:31 , Processed in 1.089486 second(s), Total 86, Slave 67 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号