Перейти к содержанию
    

Минимальные требования FreeRTOS

Пытаюсь запустить FreeRTOS на CortexM0+, имеем в наличии 4096 байт ОЗУ. Выделяю половину под кучу, стек задачи 200 байт, задача создается успешно, но вот vTaskStartScheduler() запустит не может краха создания задачи IDLE, я так понимаю что то с памятью. Есть какие то требования минимальные к применению FreeRTOS. Спасибо.

Изменено пользователем PeterD

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пытаюсь запустить FreeRTOS на CortexM0+, имеем в наличии 4096 байт ОЗУ. Выделяю половину под кучу, стек задачи 200 байт, задача создается успешно, но вот vTaskStartScheduler() запустит не может краха создания задачи IDLE, я так понимаю что то с памятью. Есть какие то требования минимальные к применению FreeRTOS. Спасибо.

Вот здесь описаны минимальные требования по памяти.

Вот здесь описаны методы для проверки переполнения стэка и ещё несколько "хуков".

Важно: если используете прерывания, то их приоритет должен быть минимальным.

Изменено пользователем gazpar

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

FreeRTOS на CortexM0+ может и хороша, но по мне много она отъедает и требует, отказался. И так проц CortexM0+ с малыми ресурсами, куда ему еще осью заниматься. Особенно если требуется малое потребление, FreeRTOS лишний едок.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Требования у FreeRtos выглядят вкусными. Но 4к по факту - слишком мало.

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

 

FreeRTOS на CortexM0+ может и хороша, но по мне много она отъедает и требует, отказался. И так проц CortexM0+ с малыми ресурсами, куда ему еще осью заниматься. Особенно если требуется малое потребление, FreeRTOS лишний едок.

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

 

Вот здесь описаны минимальные требования по памяти.

Вот здесь описаны методы для проверки переполнения стэка и ещё несколько "хуков".

Важно: если используете прерывания, то их приоритет должен быть минимальным.

Спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

РТОСы в моде. Их стараются впихнуть в невпихуемое. Неважно что РТОС займет большую часть ресурсов, ведь без нее же нельзя!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

РТОСы в моде. Их стараются впихнуть в невпихуемое. Неважно что РТОС займет большую часть ресурсов, ведь без нее же нельзя!

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

Задач там немного, но просто удобно было практически готовые вещи портировать со старших контроллеров. Ну а ресурсы памяти, как раз благодаря менеджеру памяти и экономились.

 

 

Особенно если требуется малое потребление, FreeRTOS лишний едок.

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

Если, коечно, мыслить категориями "контролера светодиода", то тогда коечно ни RTOS ни сам контролер не нужен :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если проблемы с памятью, то должен вызываться соответсвующий hook фриртоски. Начните проверку с этого.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Задач там немного, но просто удобно было практически готовые вещи портировать со старших контроллеров. Ну а ресурсы памяти, как раз благодаря менеджеру памяти и экономились.

 

 

 

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

Если, коечно, мыслить категориями "контролера светодиода", то тогда коечно ни RTOS ни сам контролер не нужен :)

В своем проекте с STM32L05, L07 делал оценку ресурсов полагал использовать RTOS, поставил, затем задачу написал без RTOS, экономия получилась приличная. Никакой надобности в RTOS не обнаружил, тем более что в задаче есть жесткие протокольные тайминги, чего RTOS не позволяла обеспечить без задирания тактовой. Что и повышало потребление. Да и не причем тут бонусы, задача и так использует слип режимы, если режим малого потребления требуется обеспечить, иначе никак.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В своем проекте с STM32L05, L07 делал оценку ресурсов полагал использовать RTOS, поставил, затем задачу написал без RTOS, экономия получилась приличная. Никакой надобности в RTOS не обнаружил, тем более что в задаче есть жесткие протокольные тайминги, чего RTOS не позволяла обеспечить без задирания тактовой. Что и повышало потребление. Да и не причем тут бонусы, задача и так использует слип режимы, если режим малого потребления требуется обеспечить, иначе никак.

Причины не использовать RTOS, конечно могут быть. И абсолютные максимумы, минимумы и оптимумы затрат ФИЗИЧЕСКИХ ресурсов для решения какой либо задачи достигаются только индивидуальным выпиливанием из куска нефрита. Любые унивесальные решения, к коим относятся и RTOS, естественно по затратам тех-же байтов, тактов и микроамепер, безусловно находятся в изначально проигрышном состоянии.

Но нежели есть хоть МАЛЕЙШИЙ выбор использовать, или не использовать RTOS, то следует использовать.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Требования у FreeRtos выглядят вкусными. Но 4к по факту - слишком мало.

На MSP430 запускали, 2k - нормально.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...