嵌入式学习小组
直播中

顾鸿兰

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

如果在微秒延时的时候事件发生更高优先级任务运行会失败吗?

关于原子哥freertos例程中的微秒延时,这个freertos中微秒延时不像uocs中关闭了调度器,那么如果在微秒延时的时候事件发生更高优先级任务运行,例如中断中释放了信号量,使等待这一信号量的高优先级任务就绪并运行,这样就打断了微秒延时,可能会导致操作失败。我想的对不对?如果遇到这样的问题该怎么解决?各位网友和原子哥有时间帮忙解答一下,多谢了。@发烧友

回帖(6)

李丕海

2020-6-16 15:51:13
关闭了任务调度,就不会再发生调度。不存在你说的高优先级打断的情况。
举报

h1654155275.5614

2020-6-16 15:59:59
谢谢原子哥,ucos中微秒延时关闭了任务调度,这个我理解,可是freertos的微秒延时中没有关闭啊@发烧友
举报

刘磊

2020-6-16 16:16:47
FreeRTOS的微秒延时vTaskDelay();是有挂起任务调度器的  你看下vTaskDelay()源码里面刚进函数就有调用vTaskSuspendAll();挂起任务调度器  执行到后面也有调用xTaskResumeAll();恢复任务调度器
举报

王晋

2020-6-16 16:24:16
FreeRTOS的微秒延时vTaskDelay();是有挂起任务调度器的  你看下vTaskDelay()源码里面刚进函数就有调用vTaskSuspendAll();挂起任务调度器  执行到后面也有调用xTaskResumeAll();恢复任务调度器
举报

更多回帖

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