1) portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE ;
пепеменная определяймая обычно на стеке обработчика прерывания и получаемая щначение которое говорить - изменился ли план шедуллера изза работы кода обработчика, тоесть код мог породить ситуацию когда отвисающая в ожидании более высокприоритетная задача получила данные и немедленно должна получить управление
2) xQueueSendFromISR (xRxedChars, &ret, &xHigherPriorityTaskWoken);
это специфичный для обработчика прерываний вызов запиховыния данных в очередь, с измеением значения xHigherPriorityTaskWoken
3) portEND_SWITCHING_ISR(xHigherPriorityTaskWoken);
сообщение шедуллеру что 'вдруг изза работы кода обработчика прерыания' нужно немедленно перепланировать потоки - остановить текущую и запустить более приоритетную
4) xQueueReceive(xRxedChars , &ret , portMAX_DELAY);
специфичный для кода задачи принять данные из очереди - вызов блокирующий, в данном сдучае до тех пор пока данные не появятся в очереди (portMAX_DELAY)
5) static xQueueHandle xRxedChars;
ну типа дескрипрор очереди, или хендл еще называбт, по факту содержит адрес экземпляра структуры очереди.
xRxedChars = xQueueCreate (1, (unsigned portBASE_TYPE) sizeof (signed portCHAR));
вызов создающий на куче очередь, если вернул не нуль - пользуйся ей .
звиняте за орфографию и пунктуцию... какая нах пунктуация. с сегодняшнего дня приняли на фирме карантин, завез домой последнее борохло на поработать дома - с горя решил бухнуть, кого я теперь по утрам строить буду.. себя ;(