FX-RTOS для Cortex-M0

Страницы: 1
RSS
FX-RTOS для Cortex-M0
 
В примерах есть FX-RTOS для Cortex-M3 и Cortex-M4.
Где взять библиотеку libfxrtos.a для Cortex-M0? Нужна библиотека под GCC для STM32CubeIDE.
 
Сергей, здравствуйте.


Архив с библиотекой и заголовочным файлом: standard-cortex-m0-GNU-tools

Скоро мы выложим на сайте демо-проекты для плат с процессорами на cortex-m0.
Для STM32CubeIDE алгоритм добавления библиотеки FX-RTOS такой же как в других IDE:
  1. Скопировать фалы FXRTOS.h и libfxrtos.a в проект.

  2. Указать линковщику, откуда брать библиотеку (файл libfxrtos.a). В свойствах проекта открываем настройки компилятора:


Справа выбираем “C/C++ Build” затем, “Settings” и на закладке “Tool Settings” переходим в “MCU GCC Linker”/”Libraries”. Так как ОСРВ нужна во всех конфигурациях Release и Debug, то нужно указать для какой конфигурации меняем настройки - [ All configurations ]

Добавляем библиотеку в окне “Additional object files”. Путь к библиотеке укажем относительно расположения рабочего пространства (Workspace):

Далее подставить startup.s системные обработчики PendSV_Handler и SysTick_Handler, и описать fx_intr_handler для пользовательских прерываний
Чтобы запустилась ОС, нужно добавить вызов функции fx_kernel_entry() в main() после инициализации контроллера.
Первая пользовательская функция fx_app_init должна быть описана в main.c, она будет вызываться ядром ОС.
 
Дмитрий Алексеев, спасибо!

Почти заработало, но в STM32F030C6 (4k RAM) не влезает...

Сделал пустой проект библиотеки LL (не HAL):


Потом подключил FX-RTOS (без тасков) - получил ошибку, типа не хватает памяти RAM:

Не хватает 624 байта!

Уменьшил стек, т.к. у тасков он свой будет:

Тут вопрос - на сколько можно уменьшить эти значения?

В итоге, влезло, но совсем впритык:


Как-то много памяти забрала ось - посмотрел, мап-файл и возникло ещё несколько вопросов:


1. fx_app_timer забрал 0x694 байта! Как настроить, чтобы он меньше брал?
2. hal_intr_stack забрал 0x400 байт - Тоже можно уменьшить, и судя по названию, это стек для прерываний? И как уменьшить?
3. Использует FX-RTOS Heap? Может его вообще в 0 поставить?
 
Код
1. fx_app_timer забрал 0x694 байта! Как настроить, чтобы он меньше брал?
2. hal_intr_stack забрал 0x400 байт - Тоже можно уменьшить, и судя по названию, это стек для прерываний?
Размеры стеков прерываний и таймерного потока настраиваются при сборке libfxrtos.a из исходных текстов. В демо-версии изменение этих опций не предусмотрено.
Код
3. Использует FX-RTOS Heap? Может его вообще в 0 поставить?
Не использует, можно ставить в 0.
Страницы: 1

Будьте в курсе новостей и спецпредложений

Авторизация
Чтобы продолжить покупку, пожалуйста, авторизируйтесь на сайте.
Забыли пароль?