Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Размер стека
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
bamboor
Что влияет на размер стека при написании программы под ОС?
В моем проекте 8 задач. Одна стартовая, 3 задачи на Ethernet (таймер, IF и PHY), 2 на USB (стек и фенкционал) и 2 пользователиские.
Экспериментальным путем установил, что минимальный размер стека 512*4байта. Мне кажется это много.
Меня интересует, есть ли какие-то рекомендации по написанию программ для ОС, следуя которым можно избежать неоправданного роста стека?

ОС = uC/OS; компилятор = RVC.

Спасибо.
AjaxLab
Цитата(bamboor @ Jun 26 2009, 15:14) *
Что влияет на размер стека при написании программы под ОС?
В моем проекте 8 задач. Одна стартовая, 3 задачи на Ethernet (таймер, IF и PHY), 2 на USB (стек и фенкционал) и 2 пользователиские.
Экспериментальным путем установил, что минимальный размер стека 512*4байта. Мне кажется это много.
Меня интересует, есть ли какие-то рекомендации по написанию программ для ОС, следуя которым можно избежать неоправданного роста стека?

ОС = uC/OS; компилятор = RVC.

Спасибо.


RVCT (по крайней мере тот, что в составе Keil'а) создает файл "имя проекта.htm" в нем, в частности,
находится информация по использованию стека.
scifi
Цитата(bamboor @ Jun 26 2009, 15:14) *
Что влияет на размер стека при написании программы под ОС?

Влияет глубина вложенности вызовов функций, число и размеры локальных переменных. Если обработчики прерываний используют тот же стек, то они тоже влияют.
Кстати, несложно измерить реально используемый объём стека. По результатам измерения можно размер стека и установить, добавив запас для душевного спокойствия.
meister
Цитата(bamboor @ Jun 26 2009, 15:14) *
неоправданного роста стека?


В отладке я заполняю всю стэковую память байтом 0xAA, "трясу" и смотрю где он поменялся.
IgorKossak
Тема обсуждалась уже очень много раз.
Закрываю.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.