【发布时间】:2023-05-29 13:46:01
【问题描述】:
现在我正在学习 FreeRTOS V9.0.0 参考手册中的 freeRTOS api“taskENTER_CRITICAL()”。 我为这个 API 找到了这样的描述: “不得从关键部分调用 FreeRTOS API 函数” 为什么?为什么我们不能在关键部分调用 freertos api?如下图所示:
taskENTER_CRITICAL();
do_something..
xQueueReceive(); // ?? why can't call this api within this critical setction ??
taskEXIT_CRITICAL();
希望得到任何人的回应,谢谢!
BR//王大卫
【问题讨论】:
-
好吧,我不知道有关 freeRTOS 的任何详细信息,但听起来好像当他们说关键部分时,他们实际上是指关键部分。像中断处理程序一样保持简短。就像 200 条 CPU 指令一样短。
-
谢谢!但是如果我在 CRITICAL 部分调用一些 FreeRTOS 系统调用,会发生什么?系统崩溃或系统挂起或...?
-
@DavidWang 自己试试吧。
标签: c operating-system arm stm32 freertos