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

 
 
> Сколько стека использует программа?, как определить?
777777
сообщение Jul 15 2011, 08:05
Сообщение #1


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

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Есть подозрение, что стек налазит на данные. Как это определить? Есть ли какие-то отладочные средства или вручную изгаляться?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 3)
izerg
сообщение Jul 15 2011, 09:00
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 531
Регистрация: 1-02-05
Из: Украина, Киев
Пользователь №: 2 342



А что из отладочных средств у Вас доступно?
Многие компиляторы в отчетах дают статистику по использованию стеков функциями, по ним можно косвенно судить о максимальной глубине.
Некоторые ИДЕ умеют показывать текущий занятый стек.
Go to the top of the page
 
+Quote Post
777777
сообщение Jul 15 2011, 09:40
Сообщение #3


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

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(izerg @ Jul 15 2011, 13:00) *
А что из отладочных средств у Вас доступно?

AvrStudio + JTAGICEmkII
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Jul 15 2011, 10:36
Сообщение #4


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

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Вы посмотрите как, например, это решено в новой версии scmRTOS. В начале весь стек заполняется неким патерном (маловероятным для данного типа процессора кодовым числом, типа 0xdeaddead). При запуске тестовой функции оценивается до какого уровня был использован стек. На практике метода проста. Выделяем вначале все что можно под стек. Запускаем свои задачи на некоторое время (зависит от задачи). Смотрим потребленный стек. Это и есть минимально необходимый объем. Увеличиваем его на 20-30% для надежности. Такой объем стека задаем в параметрах проекта.

Насколько мне известно, самый простой и надежный способ оценки потребности в стеке.

Вообще этот вопрос на форуме несколько раз обсуждался. Искать, конечно, лень?
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 26th June 2025 - 12:29
Рейтинг@Mail.ru


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