Перевод может содержать ошибки. Читайте первоисточник: Source Code Organization
Назад: [Getting Started] | Вверх: [Getting Started] | Вперёд: [Getting Started] |
Каждый порт FreeRTOS поставляется с предварительно настроенным демонстрационным проектом, в который включены необходимые исходные файлы и необходимые заголовочные файлы ОС. Настоятельно рекомендуется использовать эти предоставляемые демо-проекты в качестве основы для новых приложений, использующих FreeRTOS. Эта страница предназначена для облегчения поиска нужных проектов и понимания их структуры.
В состав FreeRTOS включены исходные тексты для каждого порта и каждого демонстрационного приложения. Включение всех портов в один архив упрощает получение всей необходимой информации, но количество файлов может показаться пугающим. Однако структура каталогов очень проста, и ядро FreeRTOS содержится всего в трёх файлах. Дополнительные файлы необходимы, если потребуется дополнительный функционал (программные таймеры, флаги aka группы событий или созадачи).
На верхнем уровне архив делится на два подкаталога, FreeRTOS и FreeRTOS-Plus:
+-FreeRTOS-Plus Содержит компоненты FreeRTOS+ и демонстрационные проекты для FreeRTOS+.
|
+-FreeRTOS Содержит исходные файлы ядра FreeRTOS и демонстрационные проекты для FreeRTOS.
Подкаталог FreeRTOS-Plus содержит несколько файлов readme.txt, в которых описано содержимое. Далее на этой странице будет рассматриваться только ядро FreeRTOS и демонстрационные проекты, которые содержатся в следующих подкаталогах:
FreeRTOS | +-Demo Содержит демонстрационные проекты. | +-Source Содержит исходные файлы ядра FreeRTOS.
Код ядра ОС находится в трёх файлах: tasks.c, queue.c и list.c. Эти три файла находятся в каталоге FreeRTOS/Source. В этом же каталоге находятся два дополнительных файла: timers.c и croutine.c, которые содержат код реализации программных таймеров и созадач соответственно.
Каждая поддерживаемая процессорная архитектура требует небольшого количества кода, специфичного для данной архитектуры. Это "уровень переносимости" ОС. Файлы с необходимым кодом содержатся в каталогах вида FreeRTOS/Source/Portable/[compiler]/[architecture], где [compiler] и [architecture] это компилятор, используемый для данной реализации, и архитектура, для которой создан порт.
По причинам, указанным на странице "Управление памятью", примеры схем размещения кучи также размещены на "уровне переносимости". Файлы с примерами размещения кучи heap_x.c расположены в каталоге FreeRTOS/Source/portable/MemMang.
Примеры каталогов уровня переносимости:
Специфичный для TriCore файл (port.c) находится в каталоге FreeRTOS/Source/Portable/GCC/TriCore_1782. Все другие подкаталоги в FreeRTOS/Source/Portable, за исключением FreeRTOS/Source/Portable/MemMang, могут быть игнорированы или удалены из текущего проекта.
Специфичный для RX600 файл (port.c) находится в каталоге FreeRTOS/Source/Portable/IAR/RX600. Все другие подкаталоги в FreeRTOS/Source/Portable, за исключением FreeRTOS/Source/Portable/MemMang, могут быть игнорированы или удалены из текущего проекта.
Структура каталога FreeRTOS/Source представлена ниже.
FreeRTOS | +-Source Исходные файлы компонентов ядра FreeRTOS. | +-include Заголовочные файлы для компонентов ядра FreeRTOS. | +-Portable Уровень переносимости. Порты. Файлы, зависящие от архитектуры процессора. | +-Compiler x Все порты для сборки компилятором x. +-Compiler y Все порты для сборки компилятором y. +-MemMang Примеры реализации кучи.
Дистрибутив FreeRTOS также содержит демонстрационные приложения для каждой архитектуры процессора и компилятора. БОльшая часть кода демонстрационного приложения является общей для всех портов и находится в каталоге FreeRTOS/Demo/Common/Minimal (каталог FreeRTOS/Demo/Common/Full является устаревшим, и используется только портом для IBM PC).
Остальные подкаталоги FreeRTOS/Demo содержат предварительно настроенные проекты для сборки отдельных демонстрационных приложений. Название каждого подкаталога указывает порт, к которому относится демонстрационное приложение. Каждый порт ОС также имеет описание на веб-странице, на которой подробно описывается каталог с демонстрационными приложениями. И оттуда есть ссылки на страницы с подробным описанием каждого демонстрационного приложения.
Примеры подкаталогов с демонстрационными приложениями:
Файлы проекта демонстрационного приложения TriCore находятся в каталоге FreeRTOS/Demo/TriCore_TC1782_TriBoard_GCC. Все остальные подкаталоги, содержащиеся в FreeRTOS/Demo, кроме FreeRTOS/Demo/Common, могут быть проигнорированы или удалены из текущего проекта.
Файлы рабочей области (и проекта) IAR расположены в каталоге FreeRTOS/Demo/RX600_RX62N-RDK_IAR. Все остальные подкаталоги, содержащиеся в FreeRTOS/Demo, кроме FreeRTOS/Demo/Common, могут быть проигнорированы или удалены из текущего проекта.
Структура каталога FreeRTOS/Demo представлена ниже.
FreeRTOS | +-Demo | +-Common Файлы, необхоимые для всех демонстрационных приложений. +-Dir x Файлы демонстрационного приложения для порта x. +-Dir y Файлы демонстрационного приложения для порта y.
Более подробно это описано на странице "Создание нового приложения с использованием FreeRTOS".
Предварительно сконфигурированные демонстрационные приложения предоставляются для того, чтобы убедиться, что приложения уже существуют, с корректным набором файлов, и с корректно указанными настройками параметров компилятора, и, следовательно, могут быть собраны с минимальными усилиями со стороны пользователя. Поэтому будет хорошей идеей создавать новые приложения путём изменения существующего предварительно протестированного демонстрационного приложения. Это можно сделать, сначала собрав существующее демонстрационное приложение, чтобы убедиться, что сборка прошла чисто, а затем последовательно заменять файлы демонстрационного приложения из каталога FreeRTOS/Demo на исходные файлы собственного приложения.