99
КОМПОНЕНТЫ И ТЕХНОЛОГИИ • № 2 '2011
www.kite.ru
компоненты
микроконтроллеры
лишь тем, что поставляется под коммерче‑
ской лицензией, с гарантией производителя
и отменяет некоторые несущественные огра‑
ничения, присущие FreeRTOS. Подробно
с особенностями SafeRTOS и OpenRTOS
можно ознакомиться в [8].
Конечно, FreeRTOS — это далеко не един‑
ственный выбор для разработчика. В на‑
стоящее время существует множество дру‑
гих ОСРВ для МК, среди которых можно
назвать uC/OS‑II, μClinux, Salvo, jacOS и др.
[6]. Однако обсуждение достоинств и недо‑
статков этих ОС выходит за рамки данной
статьи.
С чего начать?
Начать разработку микроконтроллерного
устройства, работающего под управлением
FreeRTOS, можно с загрузки ее последней
версии по адресу [9]. Дистрибутив FreeRTOS
доступен в виде обычного или самораспа‑
ковывающегося ZIP‑архива. Дистрибутив
содержит непосредственно код ядра
(в виде нескольких заголовочных файлов
и файлов с исходным кодом) и демонстраци‑
онные проекты (по одному проекту на каж‑
дую среду разработки для каждого порта).
Далее следует распаковать архив в любое
подходящее место на станции разработки.
Несмотря на достаточно большое количе‑
ство файлов в архиве (5062 файла для вер‑
сии 6.1.0), структура директорий на самом
деле проста. Если планируется проектировать
устройства на 2–3 архитектурах в 1–2 средах
разработки, то б
óльшая часть файлов, относя‑
щихся к демонстрационным проектам и раз‑
личным средам разработки, не понадобится.
Подробная структура директорий приве‑
дена на рисунке.
Весь исходный код ядра находится в ди‑
ректории /Source. Его составляют следующие
файлы:
1. tasks.c — планировщик, реализация меха‑
низма задач.
2. queue.c — реализация очередей.
3. list.c — внутренние нужды планировщи‑
ка, однако функции могут использоваться
и в прикладных программах.
4. croutine.c — реализация сопрограмм (мо‑
жет отсутствовать в случае, если сопро‑
граммы не используются).
Заголовочные файлы, которые находятся
в директории Source/Include:
1. tasks.h, queue.h, list.h, croutine.h — заголо‑
вочные файлы соответственно для одно‑
именных файлов с кодом.
2. FreeRTOS.h — содержит препроцессорные
директивы для настройки компиляции.
3. mpu_wrappers.h — содержит переопреде‑
ления функций программного интерфейса
(API‑функций) FreeRTOS для поддержки
модуля защиты памяти (MPU).
4. portable.h — платформенно‑зависимые на‑
стройки.
5. projdefs.h — некоторые системные опреде‑
ления.
6. semphr.h — определяет API‑функции для
работы с семафорами, которые реализо‑
ваны на основе очередей.
7. StackMacros.h — содержит макросы для
контроля переполнения стека.
Каждая аппаратная платформа требу‑
ет небольшой части кода ядра, которая реа‑
лизует взаимодействие FreeRTOS с этой плат‑
формой. Весь платформенно‑зависимый код
находится в поддиректории /Source/Portable,
где он систематизирован по средам разработ‑
ки (IAR, GCC и т. д.) и аппаратным платфор‑
мам (например, AtmelSAM7S64, MSP430F449).
К примеру, поддиректория /Source/Portable/
Достарыңызбен бөлісу: |