Перевод может содержать ошибки. Читайте первоисточник: vQueueAddToRegistry()
| Назад: [xQueuePeekFromISR()] | Вверх: [ИПП: Очереди] | Вперёд: [vQueueUnregisterQueue] |
Функция объявляется в файле queue.h
void vQueueAddToRegistry
(
QueueHandle_t xQueue,
char *pcQueueName,
);
Функция назначает очереди имя и добавляет её в реестр.
Имя - это просто текстовая строка, используемая для облегчения отладки. Т.е. если отладчик поддерживает ядро FreeRTOS, то во время отладки будет отображаться состояние очередей, добавленных в реестр. Поскольку реестр очереди хранит только указатель на строку, строка должна быть глобальной, а ещё лучше располагаться в ПЗУ/ЭСПЗУ. И разумеется эта строка не может располагаться в стеке.
У реестра очередей два предназначения, и оба они связаны с отладкой, если отладчик предоставляет такую возможность.
Реестр очередей не имеет смысла, если отладчик не поддерживает отладку ядра FreeRTOS.
Параметр configQUEUE_REGISTRY_SIZE в файле FreeRTOSConfig.h определяет количество очередей и семафоров, которые могут быть одновременно внесены в реестр. Добавлять в реестр следует только те очереди и семафоры, состояние которых вы хотите контролировать в отладчике.
Параметры
| xQueue | Хэндлер очереди, которую необходимо добавить в реестр. |
| pcQueueName | Указатель на строку, содержащую имя, назначаемое очереди. |
Возвращаемое значение
Отсутствует.
Пример использования:
void vAFunction( void )
{
QueueHandle_t xQueue;
/* Создаём очередь достаточно большую, чтобы содержать 10 элементов типа char. */
xQueue = xQueueCreate( 10, sizeof( char ) );
/* Если отладчик поддерживает ядро FreeRTOS, мы можем назначить
очереди имя и добавить её в реестр. Тогда очередь будет видна в отладчике. */
vQueueAddToRegistry( xQueue, "AMeaningfulName" );
}