【问题标题】:FreeRTOS context switch - xQueueSendFreeRTOS 上下文切换 - xQueueSend
【发布时间】:2016-07-07 12:58:53
【问题描述】:

关于freeRTOS任务调度器的一个小问题:

任务调度器是在 xQueueSend 函数内部调用还是在下一个系统滴答时调用?

【问题讨论】:

标签: task freertos


【解决方案1】:

FreeRTOS 将始终运行能够运行的最高优先级任务。这意味着如果您使用队列、信号量、直接到任务通知、事件组、互斥锁(还有其他什么?),以这样的方式另一个任务解除阻塞,并且被解除阻塞的任务的优先级高于正在运行的任务,然后调度程序将切换到未阻塞的任务。例外情况是,如果应用程序编写者通过调用 vTaskSuspendAll() 锁定了调度程序,在这种情况下,未阻塞的任务将保持等待状态,直到应用程序编写者调用 xTaskResumeAll() - 在这种情况下,优先级最高的任务是能够运行将立即开始运行(在对 xTaskResumeAll() 的调用甚至返回之前)。

【讨论】:

    猜你喜欢
    • 2017-06-13
    • 1970-01-01
    • 2017-03-25
    • 2011-07-05
    • 2017-08-11
    • 2021-12-22
    • 2015-09-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多