【发布时间】:2021-09-21 10:00:15
【问题描述】:
据我所知,在 FreeRTOS 中,taskENTER_CRITICAL() 和 taskEXIT_CRITICAL() 这两个方法用于进入和退出临界区。 CMSIS API 中是否有这两种方法的包装器?
就像 osKernelStart() 是用于将 vTaskStartScheduler() 包装在 FreeRTOS 中的 CMSIS API。
【问题讨论】:
据我所知,在 FreeRTOS 中,taskENTER_CRITICAL() 和 taskEXIT_CRITICAL() 这两个方法用于进入和退出临界区。 CMSIS API 中是否有这两种方法的包装器?
就像 osKernelStart() 是用于将 vTaskStartScheduler() 包装在 FreeRTOS 中的 CMSIS API。
【问题讨论】:
【讨论】:
taskENTER_CRITICAL()没有这样的限制。
taskENTER_CRITICAL() 不仅“锁定所有任务开关”,而且还禁用了所有来自外设的中断。如果我们想阻止任务切换,似乎还有另一个宏vTaskSuspendAll。