Портирование FreeRTOS на другую программную или аппаратную платформу
Файлы низкого уровня
Стартовый файл C и скрипт компоновщика обычно зависят от процессора и компилятора. Никогда не пытайтесь создавать эти файлы с нуля; в каталоге demo FreeRTOS есть демонстрационные примеры для различных процессоров. Выберите пример, наиболее подходящий для вашего процессора, и начните с него.
Будьте особенно внимательны с файлами запуска ARM7 C. Они должны настраивать обработчик IRQ либо на векторную передачу непосредственно в обработчик прерываний, либо на векторную передачу в общую точку входа. Примеры обработки векторов показаны в FreeRTOS/source/portable/[compiler]/[microcontroller]/port.c и portISR.c. Опять же, обязательно используйте существующие файлы в качестве справочника.
Скрипты компоновщика должны быть скорректированы для правильного описания карты памяти используемого микроконтроллера.
Файлы проекта
В каждом проекте обычно определяется макрос препроцессора, специфичный для компилируемого порта. Макрос препроцессора определяет, какой файл portmacro.h будет включен. Обратитесь к существующим проектам демонстрационных приложений и файлу FreeRTOS/source/include/portable.h, чтобы найти правильное определение для вашего проекта. Если макрос препроцессора не определен, то каталог, в котором находится соответствующий файл portmacro.h, должен быть включен в путь поиска включения препроцессора.
Другие настройки компилятора, такие как параметры оптимизации, также могут иметь решающее значение. Опять же, обратитесь за примерами к существующим демонстрационным проектам приложений.
В зависимости от способа сборки проекта, необходимо определить соответствующие опции для компилятора. Они могут быть заданы в опциях GUI, если компилятор является системой, основанной на пользовательском интерфейсе, или в скриптах compile или make, которые будут использоваться для компиляции проекта.
Настройка прерывания таймера
Прерывание таймера настраивается функцией prvSetupTimerInterrupt(), которая находится в файле FreeRTOS/source/portable/[compiler]/[microcontroller]/port.c.
Управление использованием ОЗУ и ПЗУ
В качестве последнего шага определите необходимую схему управления памятью, которая будет соответствовать требованиям приложения, и обновите соответствующую настройку в файле FreeRTOSConfig.h.
Портирование на новый контроллер или процессор
Портирование FreeRTOS на новый контроллер или процессор - довольно сложный процесс. Перенос на одно и то же семейство процессоров гораздо более прост и может быть выполнен с использованием существующих демонстрационных настроек, доступных в demo в каталогах релизов FreeRTOS. Перенос на другое семейство процессоров, с другой стороны, требует глубокого понимания процесса.
Для получения подробной информации о портировании на новый контроллер или процессор см. руководство по портированию FreeRTOS.
Контрольные вопросы
- Какие файлы ядра FreeRTOS обязательно должны быть в проекте для нового контроллера?
- Какие файлы, специфичные для используемого компилятора, необходимо включить в проект?
- Что обязательно нужно скорректировать в скрипте компоновщика при переносе на новый микроконтроллер?
- Как настроить прерывание таймера в FreeRTOS?
- Как управлять использованием ПЗУ и ОЗУ в FreeRTOS?