Запуск FreeRTOS на MIK32: различия между версиями
Строка 37: | Строка 37: | ||
На данном существует вариативность действий, но предлагается оставить структуру наиболее близкой к той, которая наблюдается в репозитории freertos. Создадим папку FreeRTOS в директории src. Сначала копируем папку с хидерами и Си-файлы движка опtрационной системы в созданную src\FreeRTOS. | На данном существует вариативность действий, но предлагается оставить структуру наиболее близкой к той, которая наблюдается в репозитории freertos. Создадим папку FreeRTOS в директории src. Сначала копируем папку с хидерами и Си-файлы движка опtрационной системы в созданную src\FreeRTOS. | ||
[[Файл:Freertos 11.png|центр|мини]] | [[Файл:Freertos 11.png|центр|мини]] | ||
В этом месте создадим папку portable и скопируем в нее только необходимое, это файлы репозитория которые находятся в \portable\GCC\RISC-V\, далее нужно скопировать папку portable\Common (работа с MPU при наличии такового), а так же MemMang (модели памяти). | В этом месте создадим папку portable и скопируем в нее только необходимое, это файлы репозитория которые находятся в \portable\GCC\RISC-V\, далее нужно скопировать папку portable\Common (работа с MPU при наличии такового), а так же MemMang (модели памяти). На данном этапе проект должен выглядеть следующим образом: | ||
[[Файл:Freertos 12.png|центр|мини]] | |||
В зависимости от конфигурации микроконтроллера следует добавить так наз. chip_specific_extentions. Так как в нашем случае мы не имеем встроенного контроллера прерываний и дополнительных регистров, которые надо сохранять, то выбираем файл из "\portable\GCC\RISC-V\chip_specific_extensions\RISCV_no_extensions\" и добавляем файлы в папку нашего проекта RISC-V. Далее, так как мы должны выбрать только одну модель памяти из 5 вариантов, то удалим все файлы кроме heap_1.c - это самая базовая модель памяти. | |||
[[Файл:Freertos 13.png|центр|мини]] | |||
На этом структура проекта в части исходных кодов FreerRTOS сформирована. | |||
Далее, нужно добавить несколько пользовательских конфигурационных файлов в корневую директорию \src |
Версия от 09:35, 2 июня 2023
Введение
Большинство современных приложений на микроконтроллерах с 32-битной архитектурой требуют применения операционных систем реального времени (ОСРВ). Таких систем существует довольно много - ombOC, microC/OC-II, ThreadX, chibiOS, openRTOS и многие другие, но, наиболее получивших распространение стала система - FreeRTOS.
FreeRTOS - это бесплатное ответвление проекта openRTOS. Дополнительную прелесть этой системе придает легкая интеграция TCP/IP стека lwIP, так же проект с открытым исходным кодом.
В данной статье будет рассмотрено портирование этого проекта под платформу MIK32. Здесь не будет обучения работе с этой ОСРВ, однако таких материалов в интернете довольно много, поэтому здесь будет информация только про то, что нужно изменить в порте под RISC-V из стандартной поставки с сайта freertos.org.
Первые шаги
Загрузка файлов проекта
Для начала требуется скачать стандартный пакет с сайта freertos.org
Сохраним этот архив на локальном диске и развернем его содержимое.
Краткое пояснение - что-где
В первую очередь, это папка самого движка ОСРВ, нам нужно будет добавить её содержимое в свое проект-шаблон.
В подпапке include - все необходимые хидеры.
Папка portable находятся файлы, которые портируют систему на разные архитектуры. Здесь нас будет интересовать именно подпапка \GCC\RISC-V
Рабочая среда Eclipse
Будем работать в среде Eclipse. Скачать уже сконфигурированную оболочку можно в разделе Быстрый старт в Eclipse IDE. После установки среды в рабочей папке можно найти проект-шаблон:
Копируем содержимое этой директории во вновь созданную папку для нашего будущего проекта!
Далее, уже в Eclipse мы втягиваем проект в рабочий worspace, в меню выбираем "File->Import"
и выбираем место, где мы ранее сохранили шаблон-проект
остается нажать кнопку Finish. После этого проект должен вполне успешно собираться (Ctrl+B) и работать в микроконтроллере . Можно проверить это при желании.
Копирование файлов ОСРВ в проект
На данном существует вариативность действий, но предлагается оставить структуру наиболее близкой к той, которая наблюдается в репозитории freertos. Создадим папку FreeRTOS в директории src. Сначала копируем папку с хидерами и Си-файлы движка опtрационной системы в созданную src\FreeRTOS.
В этом месте создадим папку portable и скопируем в нее только необходимое, это файлы репозитория которые находятся в \portable\GCC\RISC-V\, далее нужно скопировать папку portable\Common (работа с MPU при наличии такового), а так же MemMang (модели памяти). На данном этапе проект должен выглядеть следующим образом:
В зависимости от конфигурации микроконтроллера следует добавить так наз. chip_specific_extentions. Так как в нашем случае мы не имеем встроенного контроллера прерываний и дополнительных регистров, которые надо сохранять, то выбираем файл из "\portable\GCC\RISC-V\chip_specific_extensions\RISCV_no_extensions\" и добавляем файлы в папку нашего проекта RISC-V. Далее, так как мы должны выбрать только одну модель памяти из 5 вариантов, то удалим все файлы кроме heap_1.c - это самая базовая модель памяти.
На этом структура проекта в части исходных кодов FreerRTOS сформирована.
Далее, нужно добавить несколько пользовательских конфигурационных файлов в корневую директорию \src