Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Минимальные требования FreeRTOS
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы
PeterD
Пытаюсь запустить FreeRTOS на CortexM0+, имеем в наличии 4096 байт ОЗУ. Выделяю половину под кучу, стек задачи 200 байт, задача создается успешно, но вот vTaskStartScheduler() запустит не может краха создания задачи IDLE, я так понимаю что то с памятью. Есть какие то требования минимальные к применению FreeRTOS. Спасибо.
gazpar
Цитата(PeterD @ Jul 18 2016, 17:03) *
Пытаюсь запустить FreeRTOS на CortexM0+, имеем в наличии 4096 байт ОЗУ. Выделяю половину под кучу, стек задачи 200 байт, задача создается успешно, но вот vTaskStartScheduler() запустит не может краха создания задачи IDLE, я так понимаю что то с памятью. Есть какие то требования минимальные к применению FreeRTOS. Спасибо.

Вот здесь описаны минимальные требования по памяти.
Вот здесь описаны методы для проверки переполнения стэка и ещё несколько "хуков".
Важно: если используете прерывания, то их приоритет должен быть минимальным.
Kabdim
Требования у FreeRtos выглядят вкусными. Но 4к по факту - слишком мало.
Aner
FreeRTOS на CortexM0+ может и хороша, но по мне много она отъедает и требует, отказался. И так проц CortexM0+ с малыми ресурсами, куда ему еще осью заниматься. Особенно если требуется малое потребление, FreeRTOS лишний едок.
PeterD
Цитата(Kabdim @ Jul 18 2016, 17:54) *
Требования у FreeRtos выглядят вкусными. Но 4к по факту - слишком мало.

Запустилась как только стек задач убрал в 64 байта. Хотя с 4к не развернешься точно.

Цитата(Aner @ Jul 18 2016, 18:13) *
FreeRTOS на CortexM0+ может и хороша, но по мне много она отъедает и требует, отказался. И так проц CortexM0+ с малыми ресурсами, куда ему еще осью заниматься. Особенно если требуется малое потребление, FreeRTOS лишний едок.

Вроде SysTick timer есть быстродействие есть, памяти мало но это я с чипом промахнулся поставил ниже среднего но можно 32к поставить, просто свою флаго дрыголку лень писать.

Цитата(gazpar @ Jul 18 2016, 17:47) *
Вот здесь описаны минимальные требования по памяти.
Вот здесь описаны методы для проверки переполнения стэка и ещё несколько "хуков".
Важно: если используете прерывания, то их приоритет должен быть минимальным.

Спасибо!
jorikdima
РТОСы в моде. Их стараются впихнуть в невпихуемое. Неважно что РТОС займет большую часть ресурсов, ведь без нее же нельзя!
zltigo
QUOTE (jorikdima @ Jul 18 2016, 21:14) *
РТОСы в моде. Их стараются впихнуть в невпихуемое. Неважно что РТОС займет большую часть ресурсов, ведь без нее же нельзя!

Она НЕ занимает большую часть ресурсов. У меня есть некоторое количество железок еще на старых LPC210x - начиная с 2K RAM.
Задач там немного, но просто удобно было практически готовые вещи портировать со старших контроллеров. Ну а ресурсы памяти, как раз благодаря менеджеру памяти и экономились.


QUOTE (Aner @ Jul 18 2016, 18:13) *
Особенно если требуется малое потребление, FreeRTOS лишний едок.

RTOS не лишний едок, ибо все его потребление ресурсов это такты на переключение контекста - не будет система сделана так, что будет заниматься в основном преключениями, не будет и "лишнего" потребления. Бонусом получается унифицированный вариант энергосбережения - спать в Idle.
Если, коечно, мыслить категориями "контролера светодиода", то тогда коечно ни RTOS ни сам контролер не нужен sm.gif
Valentine Loginov
Если проблемы с памятью, то должен вызываться соответсвующий hook фриртоски. Начните проверку с этого.
Aner
QUOTE (zltigo @ Jul 19 2016, 00:45) *
Она НЕ занимает большую часть ресурсов. У меня есть некоторое количество железок еще на старых LPC210x - начиная с 2K RAM.
Задач там немного, но просто удобно было практически готовые вещи портировать со старших контроллеров. Ну а ресурсы памяти, как раз благодаря менеджеру памяти и экономились.



RTOS не лишний едок, ибо все его потребление ресурсов это такты на переключение контекста - не будет система сделана так, что будет заниматься в основном преключениями, не будет и "лишнего" потребления. Бонусом получается унифицированный вариант энергосбережения - спать в Idle.
Если, коечно, мыслить категориями "контролера светодиода", то тогда коечно ни RTOS ни сам контролер не нужен sm.gif

В своем проекте с STM32L05, L07 делал оценку ресурсов полагал использовать RTOS, поставил, затем задачу написал без RTOS, экономия получилась приличная. Никакой надобности в RTOS не обнаружил, тем более что в задаче есть жесткие протокольные тайминги, чего RTOS не позволяла обеспечить без задирания тактовой. Что и повышало потребление. Да и не причем тут бонусы, задача и так использует слип режимы, если режим малого потребления требуется обеспечить, иначе никак.
zltigo
QUOTE (Aner @ Jul 19 2016, 11:32) *
В своем проекте с STM32L05, L07 делал оценку ресурсов полагал использовать RTOS, поставил, затем задачу написал без RTOS, экономия получилась приличная. Никакой надобности в RTOS не обнаружил, тем более что в задаче есть жесткие протокольные тайминги, чего RTOS не позволяла обеспечить без задирания тактовой. Что и повышало потребление. Да и не причем тут бонусы, задача и так использует слип режимы, если режим малого потребления требуется обеспечить, иначе никак.

Причины не использовать RTOS, конечно могут быть. И абсолютные максимумы, минимумы и оптимумы затрат ФИЗИЧЕСКИХ ресурсов для решения какой либо задачи достигаются только индивидуальным выпиливанием из куска нефрита. Любые унивесальные решения, к коим относятся и RTOS, естественно по затратам тех-же байтов, тактов и микроамепер, безусловно находятся в изначально проигрышном состоянии.
Но нежели есть хоть МАЛЕЙШИЙ выбор использовать, или не использовать RTOS, то следует использовать.
MrYuran
Цитата(Kabdim @ Jul 18 2016, 17:54) *
Требования у FreeRtos выглядят вкусными. Но 4к по факту - слишком мало.

На MSP430 запускали, 2k - нормально.
juvf
у меня на Atmega169 c 1 кб озу и 16 кб пзу freertos крутиться.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.