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

 
 
> Размер стека
d7d1cd
сообщение Sep 27 2013, 07:17
Сообщение #1


Местный
***

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



Привет всем. Подскажите, пожалуйста, сколько места под стек выделяет компилятор исходного кода? Или максимальный размер стека вычислить на этапе компиляции нельзя и компилятор под это дело оставляет всю свободную память?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 1)
rezident
сообщение Sep 28 2013, 20:13
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(d7d1cd @ Sep 27 2013, 12:17) *
сколько места под стек выделяет компилятор исходного кода?

Аппаратного контроля размера стека в MSP430 нет, поэтому по сути выделяется вся доступная память. Но компилятор учитывает, что стек "растет вниз" и размещает переменные от начала ОЗУ. Таким образом данные и стек "движутся" навстречу друг другу.
Цитата(d7d1cd @ Sep 27 2013, 12:17) *
Или максимальный размер стека вычислить на этапе компиляции нельзя

Компилятор не может вычислять максимальный размер стека автоматически, т.к. заранее не известно когда будут вызываться функции обработки прерываний. А если разрешены вложенные прерывания, то это для компилятора становится совсем недетерменированной реальностью sm.gif Расход стека для каждой функции можно посмотреть в листинге, если задать опции генерации map-файла. А зная уровень вложенности при вызове функций, можно прикинуть и максимальный размер стека, не забывая учитывать расход его при вызове обработчиков прерываний.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 11th August 2025 - 19:46
Рейтинг@Mail.ru


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