|
|
  |
Минимальные требования FreeRTOS, Память |
|
|
|
Jul 18 2016, 14:03
|
Участник

Группа: Участник
Сообщений: 42
Регистрация: 26-10-07
Пользователь №: 31 743

|
Пытаюсь запустить FreeRTOS на CortexM0+, имеем в наличии 4096 байт ОЗУ. Выделяю половину под кучу, стек задачи 200 байт, задача создается успешно, но вот vTaskStartScheduler() запустит не может краха создания задачи IDLE, я так понимаю что то с памятью. Есть какие то требования минимальные к применению FreeRTOS. Спасибо.
Сообщение отредактировал PeterD - Jul 18 2016, 14:03
|
|
|
|
|
Jul 18 2016, 14:47
|
Частый гость
 
Группа: Участник
Сообщений: 147
Регистрация: 9-01-14
Пользователь №: 79 952

|
Цитата(PeterD @ Jul 18 2016, 17:03)  Пытаюсь запустить FreeRTOS на CortexM0+, имеем в наличии 4096 байт ОЗУ. Выделяю половину под кучу, стек задачи 200 байт, задача создается успешно, но вот vTaskStartScheduler() запустит не может краха создания задачи IDLE, я так понимаю что то с памятью. Есть какие то требования минимальные к применению FreeRTOS. Спасибо. Вот здесь описаны минимальные требования по памяти. Вот здесь описаны методы для проверки переполнения стэка и ещё несколько "хуков". Важно: если используете прерывания, то их приоритет должен быть минимальным.
Сообщение отредактировал gazpar - Jul 18 2016, 14:49
|
|
|
|
|
Jul 18 2016, 16:23
|
Участник

Группа: Участник
Сообщений: 42
Регистрация: 26-10-07
Пользователь №: 31 743

|
Цитата(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)  Вот здесь описаны минимальные требования по памяти. Вот здесь описаны методы для проверки переполнения стэка и ещё несколько "хуков". Важно: если используете прерывания, то их приоритет должен быть минимальным. Спасибо!
|
|
|
|
|
Jul 18 2016, 21:45
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
QUOTE (jorikdima @ Jul 18 2016, 21:14)  РТОСы в моде. Их стараются впихнуть в невпихуемое. Неважно что РТОС займет большую часть ресурсов, ведь без нее же нельзя! Она НЕ занимает большую часть ресурсов. У меня есть некоторое количество железок еще на старых LPC210x - начиная с 2K RAM. Задач там немного, но просто удобно было практически готовые вещи портировать со старших контроллеров. Ну а ресурсы памяти, как раз благодаря менеджеру памяти и экономились. QUOTE (Aner @ Jul 18 2016, 18:13)  Особенно если требуется малое потребление, FreeRTOS лишний едок. RTOS не лишний едок, ибо все его потребление ресурсов это такты на переключение контекста - не будет система сделана так, что будет заниматься в основном преключениями, не будет и "лишнего" потребления. Бонусом получается унифицированный вариант энергосбережения - спать в Idle. Если, коечно, мыслить категориями "контролера светодиода", то тогда коечно ни RTOS ни сам контролер не нужен
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jul 19 2016, 08:32
|

Гуру
     
Группа: Свой
Сообщений: 4 869
Регистрация: 28-02-08
Из: СПБ
Пользователь №: 35 463

|
QUOTE (zltigo @ Jul 19 2016, 00:45)  Она НЕ занимает большую часть ресурсов. У меня есть некоторое количество железок еще на старых LPC210x - начиная с 2K RAM. Задач там немного, но просто удобно было практически готовые вещи портировать со старших контроллеров. Ну а ресурсы памяти, как раз благодаря менеджеру памяти и экономились. RTOS не лишний едок, ибо все его потребление ресурсов это такты на переключение контекста - не будет система сделана так, что будет заниматься в основном преключениями, не будет и "лишнего" потребления. Бонусом получается унифицированный вариант энергосбережения - спать в Idle. Если, коечно, мыслить категориями "контролера светодиода", то тогда коечно ни RTOS ни сам контролер не нужен  В своем проекте с STM32L05, L07 делал оценку ресурсов полагал использовать RTOS, поставил, затем задачу написал без RTOS, экономия получилась приличная. Никакой надобности в RTOS не обнаружил, тем более что в задаче есть жесткие протокольные тайминги, чего RTOS не позволяла обеспечить без задирания тактовой. Что и повышало потребление. Да и не причем тут бонусы, задача и так использует слип режимы, если режим малого потребления требуется обеспечить, иначе никак.
|
|
|
|
|
Jul 19 2016, 13:24
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
QUOTE (Aner @ Jul 19 2016, 11:32)  В своем проекте с STM32L05, L07 делал оценку ресурсов полагал использовать RTOS, поставил, затем задачу написал без RTOS, экономия получилась приличная. Никакой надобности в RTOS не обнаружил, тем более что в задаче есть жесткие протокольные тайминги, чего RTOS не позволяла обеспечить без задирания тактовой. Что и повышало потребление. Да и не причем тут бонусы, задача и так использует слип режимы, если режим малого потребления требуется обеспечить, иначе никак. Причины не использовать RTOS, конечно могут быть. И абсолютные максимумы, минимумы и оптимумы затрат ФИЗИЧЕСКИХ ресурсов для решения какой либо задачи достигаются только индивидуальным выпиливанием из куска нефрита. Любые унивесальные решения, к коим относятся и RTOS, естественно по затратам тех-же байтов, тактов и микроамепер, безусловно находятся в изначально проигрышном состоянии. Но нежели есть хоть МАЛЕЙШИЙ выбор использовать, или не использовать RTOS, то следует использовать.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|