Почему нельзя вызвать API FreeRTOS в критической секции? - PullRequest
0 голосов
/ 13 декабря 2018

Теперь я изучаю freeRTOS api "taskENTER_CRITICAL ()" в справочном руководстве по FreeRTOS V9.0.0.Я нахожу такое описание для этого API: «Функции API FreeRTOS нельзя вызывать из критического раздела» Почему?почему мы не можем назвать freertos api в критическом разделе?как показано ниже:

taskENTER_CRITICAL();
do_something..
xQueueReceive();  // ?? why can't call this api within this critical setction ??
taskEXIT_CRITICAL();

Надеюсь, что ответ от кого-либо, спасибо!

BR // David Wang

1 Ответ

0 голосов
/ 10 января 2019

Избегать прерываний в коде, написанном в критическом разделе. xQueueReceive () также работает по прерываниям, что является основной причиной.

...