Опубликован: 24.11.2024 | Доступ: свободный | Студентов: 2 / 0 | Длительность: 03:11:00
Лекция 5:

Портирование FreeRTOS на другую программную или аппаратную платформу

< Лекция 4 || Лекция 5: 12 || Лекция 6 >
Файлы низкого уровня

Стартовый файл 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.

Контрольные вопросы

  1. Какие файлы ядра FreeRTOS обязательно должны быть в проекте для нового контроллера?
  2. Какие файлы, специфичные для используемого компилятора, необходимо включить в проект?
  3. Что обязательно нужно скорректировать в скрипте компоновщика при переносе на новый микроконтроллер?
  4. Как настроить прерывание таймера в FreeRTOS?
  5. Как управлять использованием ПЗУ и ОЗУ в FreeRTOS?
< Лекция 4 || Лекция 5: 12 || Лекция 6 >