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

 
 
> Размер стека, рекомендации?
bamboor
сообщение Jun 26 2009, 11:14
Сообщение #1





Группа: Новичок
Сообщений: 1
Регистрация: 26-06-09
Пользователь №: 50 662



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

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

Спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 4)
AjaxLab
сообщение Jun 26 2009, 12:53
Сообщение #2





Группа: Новичок
Сообщений: 11
Регистрация: 21-03-05
Пользователь №: 3 555



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

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

Спасибо.


RVCT (по крайней мере тот, что в составе Keil'а) создает файл "имя проекта.htm" в нем, в частности,
находится информация по использованию стека.
Go to the top of the page
 
+Quote Post
scifi
сообщение Jun 26 2009, 13:15
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(bamboor @ Jun 26 2009, 15:14) *
Что влияет на размер стека при написании программы под ОС?

Влияет глубина вложенности вызовов функций, число и размеры локальных переменных. Если обработчики прерываний используют тот же стек, то они тоже влияют.
Кстати, несложно измерить реально используемый объём стека. По результатам измерения можно размер стека и установить, добавив запас для душевного спокойствия.
Go to the top of the page
 
+Quote Post
meister
сообщение Jun 26 2009, 14:16
Сообщение #4


Местный
***

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



Цитата(bamboor @ Jun 26 2009, 15:14) *
неоправданного роста стека?


В отладке я заполняю всю стэковую память байтом 0xAA, "трясу" и смотрю где он поменялся.
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Jun 26 2009, 17:57
Сообщение #5


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Тема обсуждалась уже очень много раз.
Закрываю.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 25th July 2025 - 13:32
Рейтинг@Mail.ru


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