Установка и конфигурация FreeRTOS
На самом деле это скорей интеграция ее в проект. С технической точки зрения выглядит как подключение библиотек. Как той же CMSIS или SPL. Добавляем инклюдники, добавляем файлы в проект и все. Можно взять готовый пример и переколхозить, но в этом случае есть шанс прозевать какие-нибудь детали и получить странные эффекты. Поэтому начну с нуля, в качестве основы будет модуль Pinboard STM32F103C8T6 и Keil uVision. Под него все мы и соберем.
▌Качаем ОС
Тащим архив с freertos.org. Это довольно толстая солянка где 99% занимают примеры под разные архитектуры. Вот его примерная структура:
Вся ОС по большей части прячется вот в этих нескольких файлах:
- queue.c — функции очередей и мутексов
- tasks.c — функции работы с задачами
- timers.c — функции работы с таймерами
- croutine.c — функции работы с сопрограммами
- event_groups.c — функции работы с флагами
- list.c — тут все для отладки
- port.c — платформозависимые параметры. У каждого МК этот файл свой
- portmacro.h — настройки платформы. Тоже индивидуальный для каждого типа МК
- FreeRTOSConfig.h — настройки ОС. Платформозависимо, а еще зависит от целей и проекта