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


Соглашения о типах данных



Pdf көрінісі
бет12/129
Дата28.09.2023
өлшемі4.1 Mb.
#478975
1   ...   8   9   10   11   12   13   14   15   ...   129
Kurniz

Соглашения о типах данных 
и именах идентификаторов
Как упоминалось в [1], б
óльшая (подавляю-
щая) часть FreeRTOS написана на языке Си. 
Имена идентификаторов в исходном коде 
ядра и демонстрационных проектах подчиня-
ются определенным соглашениям, зная кото-
рые проще понимать тексты программ [5].
Имена переменных и функций представ-
лены в префиксной форме (так называемая 
Венгерская нотация): имена начинаются 
с одной или нескольких строчных букв — 
префикса.
Для переменных префикс определяет тип 
переменной согласно таблице 1.
НапримерulMemCheck — переменная 
типа unsigned long, pxCreatedTask — пере-
менная типа «указатель на структуру».
API-функции FreeRTOS имеют префиксы, 
обозначающие тип возвращаемого значения, 
как и для переменных. Системные функции, 
область видимости которых ограничена фай-
лом исходного кода ядра (то есть имеющие 
спецификатор static), имеют префикс prv.
Следом за префиксом функции следу-
ет имя модуля (файла с исходным кодом), 
в котором она определена. Например, 
рис. 3. Переключение между задачами, которые используют один и тот же аппаратный ресурс
рис. 4. Переключение между задачами 
без переключения контекста


111
КОМПОНЕНТЫ И ТЕХНОЛОГИИ • № 3 '2011
www.kite.ru
компоненты
микроконтроллеры
vTaskStartScheduler() — функция, возвра-
щающая тип void, которая определена в фай-
ле task.cuxQueueMessagesWaiting() — воз-
вращает некий беззнаковый целочисленный 
тип, определена в файле queue. c.
Встроенные типы данных (short, char и т. д.) 
не используются в исходном коде ядра. Вместо 
этого используется набор специальных типов, 
которые определены индивидуально для каж-
дого порта в файле portmacro.h и начинаются 
с префикса port. Список специальных типов 
FreeRTOS приведен в таблице 2.
Это сделано для обеспечения независимо-
сти кода ядра от конкретных компилятора 
и МК. В демонстрационных проектах так же 
использованы только специальные типы 
FreeRTOS, однако в своих проектах можно 
использовать встроенные типы данных. Это 
окажется полезным для разграничения иден-
тификаторов, относящихся к ядру FreeRTOS, 
от идентификаторов, использующихся 
в прикладных задачах. Напротив, исполь-
зование типов данных FreeRTOS позволит 
добиться большей кроссплатформенности 
создаваемого кода.
Подробнее следует остановиться на типах 


Достарыңызбен бөлісу:
1   ...   8   9   10   11   12   13   14   15   ...   129




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

    Басты бет