You are here

Организация текстов исходных кодов

Перевод может содержать ошибки. Читайте первоисточник: 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.

 

Исходные файлы ядра 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 1782 с компилятором GCC:

    Специфичный для TriCore файл (port.c) находится в каталоге FreeRTOS/Source/Portable/GCC/TriCore_1782. Все другие подкаталоги в FreeRTOS/Source/Portable, за исключением FreeRTOS/Source/Portable/MemMang, могут быть игнорированы или удалены из текущего проекта.

  • Если используем порт для архитектуры RX600 с компилятором IAR:

    Специфичный для 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 GCC для платформы Infineon TriBoard:

    Файлы проекта демонстрационного приложения TriCore находятся в каталоге FreeRTOS/Demo/TriCore_TC1782_TriBoard_GCC. Все остальные подкаталоги, содержащиеся в FreeRTOS/Demo, кроме FreeRTOS/Demo/Common, могут быть проигнорированы или удалены из текущего проекта.

  • Если демонстрационнное приложение собирается компилятором Renesas RX600 IAR для платформы RX62N RDK:

    Файлы рабочей области (и проекта) 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 на исходные файлы собственного приложения.

 

Hobby's category: