Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Размер стека
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
d7d1cd
Привет всем. Подскажите, пожалуйста, сколько места под стек выделяет компилятор исходного кода? Или максимальный размер стека вычислить на этапе компиляции нельзя и компилятор под это дело оставляет всю свободную память?
rezident
Цитата(d7d1cd @ Sep 27 2013, 12:17) *
сколько места под стек выделяет компилятор исходного кода?

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

Компилятор не может вычислять максимальный размер стека автоматически, т.к. заранее не известно когда будут вызываться функции обработки прерываний. А если разрешены вложенные прерывания, то это для компилятора становится совсем недетерменированной реальностью sm.gif Расход стека для каждой функции можно посмотреть в листинге, если задать опции генерации map-файла. А зная уровень вложенности при вызове функций, можно прикинуть и максимальный размер стека, не забывая учитывать расход его при вызове обработчиков прерываний.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.