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

 
 
> Вопрос по WinAVR, Как изменить размер стека?
Freeze Anti
сообщение Sep 17 2008, 05:57
Сообщение #1


Частый гость
**

Группа: Новичок
Сообщений: 153
Регистрация: 29-03-07
Из: Саратов
Пользователь №: 26 613



Собственно, сабж... У меня в программе используется достаточно много вложенных if, из которых еще и вызываются функции, плюс еще прерывания используются... Короче, есть предположение, что стека не хватает... Хочу попробовать увеличить, но что-то не нашел в манах, как это сделать...


--------------------
!!! All you need is LOVE !!!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ReAl
сообщение Sep 17 2008, 06:13
Сообщение #2


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(Freeze Anti @ Sep 17 2008, 08:57) *
Хочу попробовать увеличить, но что-то не нашел в манах, как это сделать...
В avr-gcc стек один (в отличие от IAR) и указатель стека всегда настраивается на верхушку памяти, тогда как место под неавтоматические переменные выделяется снизу.
Таким образом, размер стека автоматически устанавливается на максимально возможный.
Убедитесь, что оптимизация включена, просмотрите код, может где-то забыт массив, который уже не нужен.
Старайтесь не вызывать функции из обработчиков прерываний (за исключением inline-функций), так как это увеличивает расход стека. Если есть вложенные прерывания - попробуйте обойтись без них.
Не используйте оптимизацию -O3, при этом в коде инлайнится всё, до чего компилятор может дотянуться и это тоже может привести к росту использования стека (ненужные inline проскакивают и при -Os - для static-функций, на то есть __attribute__((__noinline__)) )


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 21st August 2025 - 15:17
Рейтинг@Mail.ru


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