Kelvin093 2022-01-03 15:33 采纳率: 0%
浏览 72
已结题

FreeRTOS在临界区里能任务切换吗?

xQueueGenericSend()函数中,给队列发送消息,我发现这个函数一开始就执行taskENTER_CRITICAL()函数进入临界区。如果该队列的待接收事件列表不为空,切优先级大于当前的任务就执行queueYIELE_IF_USING_PREEMPTION()函数进行任务切换。那这时他是还没有退出临界区的。
所以有点疑问:这里执行queueYIELE_IF_USING_PREEMPTION()给PendSV标志,然后是不是要等退出临界区以后,再进行任务切换?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 1月11日
    • 创建了问题 1月3日