gpt4 book ai didi

c - FreeRTOS 中的抢占

转载 作者:行者123 更新时间:2023-12-05 09:19:38 25 4
gpt4 key购买 nike

我开始使用 FreeRTOS,我想要一个中断来抢占任何即将运行的任务并运行我需要关键运行的任务。

有没有办法在 FreeRTOS 中执行此操作? (这是通过任务优先级实现的吗?)

最佳答案

不!以上两个答案都是危险的。

不要在 ISR 中使用 taskENTER_CRITICAL() 或 taskEXIT_CRITICAL() - 在 ISR 中需要临界区是不常见的,但如果需要,则使用 taskENTER_CRITICAL_FROM_ISR()/taskEXIT_CRITICAL_FROM_ISR() . (可能 AVR32 端口是该规则的异常(exception)?)

不要使用 xTaskResumeFromISR() 将任务与中断同步。已经发布到该功能的文档的链接甚至说了这一点。

如果我对您的问题的理解是正确的,您希望能够中断解除阻塞任务,然后如果该任务是能够运行的最高优先级任务,则让中断直接返回解除阻塞的任务。如果我的理解是正确的,那么在下一页上有一个如何有效地做到这一点的例子:http://www.freertos.org/RTOS_Task_Notification_As_Counting_Semaphore.html

关于c - FreeRTOS 中的抢占,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39940487/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com