Компоненты и технологии • №2 '2011 компоненты



Pdf көрінісі
бет48/129
Дата28.09.2023
өлшемі4.1 Mb.
#478975
1   ...   44   45   46   47   48   49   50   51   ...   129
Kurniz

Работа с очередями
Теперь целесообразно рассмотреть кон-
кретные API-функции FreeRTOS для рабо-
ты с очередями. Все API-функции для ра-
боты с очередями используют переменную 
типа xQueueHandle, которая служит в ка-
честве дескриптора (идентификатора) кон-
кретной очереди из множества всех очередей 
в программе. Дескриптор очереди можно по-
лучить при ее создании.
Создание очереди
Очередь должна быть явно создана перед 
первым ее использованием. API-функция 
xQueueCreate() служит для создания оче-
реди, она возвращает переменную типа 
xQueueHandle в случае успешного создания 
очереди:
xQueueHandle xQueueCreate(unsigned portBASE_TYPE uxQueueLength,
unsigned portBASE_TYPE uxItemSize );
Ее параметры и возвращаемое значение:
uxQueueLength
• 
— определяет размер оче-
реди, то есть максимальное количество 
элементов, которые может хранить оче-
редь.
uxItemSize
• 
— задает размер одного эле-
мента очереди в байтах, его легко получить 
с помощью оператора sizeof().
Возвращаемое значение — дескриптор оче-
• 
реди. Равен NULL, если очередь не создана 
по причине отсутствия достаточного объема 
памяти в куче FreeRTOS. Ненулевое значе-
ние свидетельствует об успешном создании 
очереди, в этом случае оно должно быть со-
хранено в переменной типа xQueueHandle 
для дальнейшего обращения к очереди.
При создании очереди ядро FreeRTOS выде-
ляет блок памяти из кучи для ее размещения. 
Этот блок памяти используется как для хра-
нения элементов очереди, так и для хранения 
служебной структуры управления очередью, 
которая представлена структурой xQUEUE.
Получить точный размер структуры 
xQUEUE для конкретной платформы и ком-
пилятора можно, получив значение следую-
щего выражения:
sizeof(xQUEUE)
При этом следует учесть, что структу-
ра xQUEUE используется ядром в собствен-
ных целях и доступа к этой структуре из тек-
ста прикладных исходных файлов (main.c 
в том числе) изначально нет. Чтобы полу-
чить доступ к структуре xQUEUE, необходи-
мо включить в исходный файл строку:
#include “..\\queue.c”
Для платформы x86 и компилятора Open 
Watcom (которые используются в учебных 
программах) размер структуры xQUEUE со-
ставляет 58 байт.


Достарыңызбен бөлісу:
1   ...   44   45   46   47   48   49   50   51   ...   129




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет