嵌入式学习小组
直播中

常匡祈

7年用户 140经验值
私信 关注

请问delay_xms()延时,会不会引起任务调度?

delay_xms()延时,不会引起任务调度的意思应该是:这个函数不会主动引起任务调度,但是在延时时间里,也是会有SYStiCK中断引起的任务调度的对吧?也就是这个延时时间内,也是可能会去执行高优先级任务的吧?
新人,不是很清晰。
昨天喜领二等奖,真是感谢原子公司。
报了名没去的抽中大奖的真可惜。
昨天会不会有没抽中也上去领了奖的呢,哈哈,每个奖品都有没人领的呢。

回帖(4)

王建军

2020-6-17 07:04:56
xms 延时途中不会主动让出cpu,但是可能被迫让出,这和设计有关,注意, systick中断是给了任务切换的一个机会。
举报

孙丽萍

2020-6-17 07:13:38
xms延时函数是通过us延时函数实现,不会发生调度;ms延时函数里面如果超过1ms使用的是系统的延时函数实现,会引发调度,低于1ms延时仍是使用us延时函数实现,不引起调度。假设心跳1000hz。
举报

陈臻江

2020-6-17 07:19:18
谢谢,不过我的意思是用xms延时期间,一定不会发生调度吗,会去执行别的高优先级的任务吗?比如延时10S,这段时间内系统不会执行别的任务吗?另外,是不是每个SYSTICK中断都会引发一次调度呢?听别人说是的。
举报

刘雅真

2020-6-17 07:35:04
如果更高优先级别的任务不是处于阻塞或挂起, 是会被调度的
但建议不要用这类delay_xms, 它百害而无一利
举报

更多回帖

发帖
×
20
完善资料,
赚取积分