|
Количество локальных переменных в GCC для AVR |
|
|
|
 |
Ответов
(1 - 8)
|
Jan 16 2010, 10:03
|
Частый гость
 
Группа: Участник
Сообщений: 144
Регистрация: 27-12-09
Из: Пермь
Пользователь №: 54 501

|
Цитата(IgorKossak @ Jan 15 2010, 12:45)  Любое в пределах объёма стека, поскольку локальные переменные создаются на стеке при вызове функции и удаляются при выходе из неё. не совсем. нужно учитывать, если есть, рекурсию + память на кадрирование стека + память на адрес возврата и сохранение регистров. вобщем сходу не определишь какого размера нужно выставить стек. только экспериментально.
|
|
|
|
|
Jan 17 2010, 13:11
|
Частый гость
 
Группа: Участник
Сообщений: 144
Регистрация: 27-12-09
Из: Пермь
Пользователь №: 54 501

|
Цитата(_Pasha @ Jan 16 2010, 23:53)  Клуб самоубийц - это из другого литературного произведения  есть некоторые задачи, которые без рекурсии не решаются вообще. Цитата(zltigo @ Jan 17 2010, 00:19)  Так уж "только экспериментально"  . Вообще-то компиляторы обычно способны предоставить информацию о глубине использования стека функциями. т.е. есть такие компиляторы, которые автоматически вычисляют максимальную глубину стека и устанавливают опции в программе? то, что во время отладки зачастую валится стек с соответствующими сообщениями эмулятора - это я знаю, а вот чтобы компилятор на этапе сборки исходников вычислял необходимый размер стека - впервые слышу.
|
|
|
|
|
Jan 17 2010, 15:11
|
Частый гость
 
Группа: Участник
Сообщений: 144
Регистрация: 27-12-09
Из: Пермь
Пользователь №: 54 501

|
Цитата(zltigo @ Jan 17 2010, 18:23)  Пречитайте еще раз - "предоставить информацию....функциями". Бездумные мечты про "опции в программе" это вообще детский сад - у меня, например прямо сейчас в текущем проекте 12 стеков при этом один из них нулевой глубины, а два пересекаются - догадайтесь откуда и почему так. В Вашей "программе" (полагаю речь идет о каком-либо IDE) столько галочек есть  ? многозадачность? кстати, тоже нужно будет реализовать в своём проекте. как лучше производить преключение контекстов потоков? по прерыванию от таймера?
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|