реклама на сайте
подробности

 
 
> FreeRTOS 9.0 Static, Определение размера стека
Boriska
сообщение Nov 7 2016, 11:34
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 28-11-07
Пользователь №: 32 772



В новой версии FreeRTOS 9.0 появилась возможность выделять память (под задачи/очереди и т.д.) статически.
Подскажите, как определить оптимальный размер памяти под стек задачи? Ну, кроме как ловить vApplicationStackOverflowHook?
Может есть какая-то методика?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
x893
сообщение Nov 7 2016, 12:59
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 333
Регистрация: 27-10-08
Из: Планета Земля
Пользователь №: 41 226



Точно так же как и раньше
1. Прописываем стек известным значением (мне нравится DEADBEEF) и потом смотрим
2. Отслеживать указатель стека при вызове функций.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Nov 7 2016, 15:08
Сообщение #3


Гуру
******

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



QUOTE (x893 @ Nov 7 2016, 15:59) *
Точно так же как и раньше

Ага. Только много неудобнее, ибо динамически выделенная память находится под управления менеджера памяти и соответственно можно добавить того-же владельца памяти и тип блока. В результате чего становится возможным абсолютно независимо от задач смотреть за тем-же использованием стека.
QUOTE
1. Прописываем стек известным значением (мне нравится DEADBEEF) и потом смотрим

А мне CAFEBABE sm.gif - оптимистичнее sm.gif
QUOTE
2. Отслеживать указатель стека при вызове функций.

Отслеживать - да. При вызове каких-то неведомых функций - незачем. У меня всегда есть консолька в ней можно и посмотреть по директиве и распределение памяти (статическое не использую по причине нахренненужности и неудобства - см.выше) и использование стеков.



--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
jcxz
сообщение Nov 25 2016, 10:00
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(zltigo @ Nov 7 2016, 18:08) *
Ага. Только много неудобнее, ибо динамически выделенная память находится под управления менеджера памяти и соответственно можно добавить того-же владельца памяти и тип блока. В результате чего становится возможным абсолютно независимо от задач смотреть за тем-же использованием стека.

Что же мешает делать то же самое при статически выделенных стеках?

Цитата(zltigo @ Nov 7 2016, 18:08) *
Отслеживать - да. При вызове каких-то неведомых функций - незачем. У меня всегда есть консолька в ней можно и посмотреть по директиве и распределение памяти (статическое не использую по причине нахренненужности и неудобства - см.выше) и использование стеков.

Я динамическое не использую по той же самой причине - нафига оно? Зачем ещё какие-то функции вызывать чтобы распределить этот блок под стек в run-time, когда то же самое прекрасно сделает линкер в build-time?
Стеки задач в процессе работы firmware у меня не меняются (как и сами задачи).
И, например, если в устройстве есть разная память (по скорости/латентности/занятости другими bus-masters), то статически я могу раскидать стеки задач по разным типам памяти, как считаю нужным. А с динамическим выделением что - для каждой памяти свой манагер писать??
Go to the top of the page
 
+Quote Post
zltigo
сообщение Nov 25 2016, 11:54
Сообщение #5


Гуру
******

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



QUOTE (jcxz @ Nov 25 2016, 12:00) *
Стеки задач в процессе работы firmware у меня не меняются (как и сами задачи).

Но меняются от релиза к релизу. В результате, в случае чего, возникают интересные вопросы, а как память была распределоена линкером на релизе XX.YY годовой давности стоящем где-то на объекте...
QUOTE
А с динамическим выделением что - для каждой памяти свой манагер писать??

Нет, менеджер один, а блоки памяти, которые он распределяет, могут быть разные. Никаких проблем. Кроме того, менеджер памяти может работать и внутри уже им-же выделенного блока памяти, например, при использовании одинаковых по размеру блоков памяти для гарантированного исключения дефрагментации.




--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
dxp
сообщение Nov 26 2016, 13:17
Сообщение #6


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



QUOTE (zltigo @ Nov 25 2016, 18:54) *
Но меняются от релиза к релизу. В результате, в случае чего, возникают интересные вопросы, а как память была распределоена линкером на релизе XX.YY годовой давности стоящем где-то на объекте...

Система управления версиями решает эту проблему за пару секунд. Если я правильно понял контекст вашего ответа. Кстати, как тут поможет динамическое выделение?


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Boriska   FreeRTOS 9.0 Static   Nov 7 2016, 11:34
|||- - zltigo   QUOTE (dxp @ Nov 26 2016, 15:17) Система ...   Nov 26 2016, 16:04
|||- - dxp   QUOTE (zltigo @ Nov 26 2016, 23:04) Ага, ...   Nov 27 2016, 05:17
|||- - zltigo   QUOTE (dxp @ Nov 27 2016, 07:17) Слабо пр...   Nov 27 2016, 11:03
||- - jcxz   Цитата(zltigo @ Nov 25 2016, 14:54) Но ме...   Nov 28 2016, 10:22
||- - zltigo   QUOTE (jcxz @ Nov 28 2016, 12:22) Узнаём ...   Nov 28 2016, 11:13
||- - jcxz   Цитата(zltigo @ Nov 28 2016, 14:13) Там и...   Nov 28 2016, 12:20
||- - zltigo   QUOTE (jcxz @ Nov 28 2016, 14:20) Без про...   Nov 28 2016, 12:59
||- - jcxz   Цитата(zltigo @ Nov 28 2016, 15:59) ...   Nov 28 2016, 14:51
||- - zltigo   QUOTE (jcxz @ Nov 28 2016, 16:51) И в чём...   Nov 28 2016, 15:53
||- - jcxz   Цитата(zltigo @ Nov 28 2016, 18:53) Как п...   Dec 2 2016, 12:41
||- - zltigo   QUOTE (jcxz @ Dec 2 2016, 14:41) Вот это ...   Dec 2 2016, 15:56
||- - jcxz   Цитата(zltigo @ Dec 2 2016, 18:56) Вы НЕ ...   Dec 3 2016, 11:06
||- - zltigo   QUOTE (jcxz @ Dec 3 2016, 13:06) Я просто...   Dec 3 2016, 12:32
|- - Raven   Цитата(x893 @ Nov 7 2016, 15:59) 1. Пропи...   Jan 13 2017, 15:47
- - Boriska   Цитата(x893 @ Nov 7 2016, 15:59) 2. Отсле...   Nov 7 2016, 17:11
- - x893   Если освоить SystemView, то можно на большом экран...   Nov 25 2016, 11:26
|- - turnon   Цитата(x893 @ Nov 25 2016, 15:26) Если ос...   Nov 26 2016, 19:19
- - x893   1. Копируем в гуглопоиск SystemView и смотрит перв...   Nov 26 2016, 20:22
- - haker_fox   А мне тоже нравится динмаическое распределение, чу...   Nov 27 2016, 09:51
- - haker_fox   QUOTE (jcxz @ Nov 28 2016, 18:22) Это над...   Nov 29 2016, 12:26
|- - zltigo   QUOTE (haker_fox @ Nov 29 2016, 14:26) За...   Nov 29 2016, 14:46
|- - k155la3   Цитата(haker_fox @ Nov 29 2016, 16:26) . ...   Dec 6 2016, 13:26
- - Tahoe   Немного разбавлю этот двустраничный флуд, про обор...   Dec 10 2016, 12:35
|- - zltigo   Цитата(Tahoe @ Dec 10 2016, 14:35) Немног...   Dec 10 2016, 12:49
|- - Tahoe   Цитата(zltigo @ Dec 10 2016, 15:49) Ваш в...   Dec 10 2016, 23:30
|- - zltigo   Цитата(Tahoe @ Dec 11 2016, 01:30) ...   Dec 11 2016, 08:03
|- - Tahoe   Цитата(zltigo @ Dec 11 2016, 11:03) Вы, н...   Dec 11 2016, 11:16
- - ar__systems   Задачу я решаю так: gcc умеет выдавать инфу, сколь...   Jan 13 2017, 15:11


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 23:15
Рейтинг@Mail.ru


Страница сгенерированна за 0.01931 секунд с 7
ELECTRONIX ©2004-2016