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

 
 
> GCC C++ для AVR, общие вопросы
spongebob
сообщение Apr 23 2012, 10:21
Сообщение #1


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

Группа: Участник
Сообщений: 126
Регистрация: 14-11-10
Пользователь №: 60 879



Всем привет!

Подскажите, пожалуйста, каков механизм вызова функций в Си++?
Имеет ряд вложенных функций (работа с массивами), хочется посчитать какой максимальный объем памяти в стеке они потребуют (передача параметров + сами данные в функциях).
Можно как-нибудь "автоматизировать" процесс подсчета? Видимо, читать значение указателя стека в определенные моменты времени?
Все ли локальные переменные, объявляемые в функциях, создаются в стеке?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
MrYuran
сообщение Apr 23 2012, 10:35
Сообщение #2


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



http://stackoverflow.com/questions/6387614...system-with-gcc

http://gcc.gnu.org/onlinedocs/gnat_ugn_unw...e-Analysis.html

Как-то так


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
spongebob
сообщение Apr 23 2012, 11:35
Сообщение #3


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

Группа: Участник
Сообщений: 126
Регистрация: 14-11-10
Пользователь №: 60 879



Цитата


Вот спасибо, попробуем sm.gif
Это ключ компилятора или линкера?

Цитата
...
The qualifier static means that the function frame size is purely static. It usually means that all local variables have a static size. In this case, the second field is a reliable measure of the function stack utilization.
...
The qualifier dynamic means that the function frame size is not static. It happens mainly when some local variables have a dynamic size.
...


Что значит "все локальные переменные имеют статический размер"? Объявлены как "static" внутри функции или это просто не динамически выделяемая память (из кучи)?
Иными словами, если мы не используем динамическую память (кучу), то компилятор с выше озвученным флагом покажет нам сколько от стека отъедает каждая функция?

По поводу "bounded" не понял.

Цитата
A unit compiled with -Wstack-usage will issue a warning for each subprogram whose stack usage might be larger than the specified amount of bytes.


Тут будут выдаваться предупреждения, если функция использует стека больше, чем сколько?

Сообщение отредактировал spongebob - Apr 23 2012, 11:35
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- spongebob   GCC C++ для AVR, общие вопросы   Apr 23 2012, 10:21
|- - MrYuran   Цитата(spongebob @ Apr 23 2012, 15:35) Во...   Apr 23 2012, 11:59
- - spongebob   Цитатаavr-g++.exe -mmcu=atmega1280 -Wall -ffunctio...   Apr 23 2012, 17:02
|- - MrYuran   Цитата(spongebob @ Apr 23 2012, 21:02) Не...   Apr 24 2012, 09:20
- - spongebob   Вот еще интересная ссылочка: http://www.avrfreaks....   Apr 24 2012, 09:11
- - spongebob   Касательно вот этого еще вопросы есть: http://www....   Apr 24 2012, 10:32
- - ReAl   Даже если указывать __heap_start и __heap_end, но ...   Apr 24 2012, 12:33
- - spongebob   Фигня какая-то... поставил 2010 WinAVR, он тоже оп...   Apr 24 2012, 17:22
- - spongebob   Вопросы по секциям. Читаю http://www.nongnu.org/av...   Apr 27 2012, 10:19
|- - Сергей Борщ   QUOTE (spongebob @ Apr 27 2012, 13:19) За...   Apr 27 2012, 11:09
|- - spongebob   Цитата(Сергей Борщ @ Apr 27 2012, 15:09) ...   Apr 27 2012, 14:59
- - spongebob   Стартап является универсальным для всех контроллер...   Apr 27 2012, 18:22
- - Сергей Борщ   QUOTE (spongebob @ Apr 27 2012, 17:59) По...   Apr 27 2012, 20:34


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

 


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


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