Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Simulator AVRStudio
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
_Артём_
Что значит сообщение в окне Messages:
AVR Simulator: Stack Underflow at 0x3ca6
GDI
Английского не знаете? Перевожу: Переполнение стека по адресу 0x3ca6
_Артём_
Цитата(GDI @ Jun 8 2007, 18:31) *
Английского не знаете? Перевожу: Переполнение стека по адресу 0x3ca6

Это понятно...
Непонятно можно ли верить этому сообщению, контролирует ли AVRStudio стек?
wodya
На чем пишете?
Я пишу на ICC и в моей практике такого рода сообщения означали проблемы со связью с MK JTAG.
Сергей Борщ
Цитата(GDI @ Jun 8 2007, 18:31) *
Перевожу: Переполнение стека по адресу 0x3ca6
Только не переполнение, а наоборот - попытка вытащить что-либо из пустого стека.
_Артём_
Цитата(Сергей Борщ @ Jun 8 2007, 19:27) *
Только не переполнение, а наоборот - попытка вытащить что-либо из пустого стека.

Но программа не сбивается.
Надо ли реагировать?
WHALE
Где не сбивается-в симуляторе за 1-2 прохода?Это ни о чем не говорит,в реале может глючить со страшной силой,если конвеер стека нарушается.
singlskv
Цитата(Сергей Борщ @ Jun 8 2007, 20:27) *
Только не переполнение, а наоборот - попытка вытащить что-либо из пустого стека.

Угу.
Вот здесь я уже отвечал:
http://electronix.ru/forum/index.php?showt...3&hl=studio
, но похоже никто не поверил smile.gif
_Артём_
Цитата(singlskv @ Jun 8 2007, 22:55) *
Угу.
Вот здесь я уже отвечал:
http://electronix.ru/forum/index.php?showt...3&hl=studio
, но похоже никто не поверил smile.gif

Как я понял из поста "Вызов функции по указателю на функцию., Переполнение стека AVR Simulator: Stack Underflow at 0x01f3." AVRStudio выдаёт неправильное сообщение.
В моём случае сообщение возникает тоже при вызове функции по указателю.
Т.е. на этот счёт можно не беспокоится.
defunct
Цитата(_Артём_ @ Jun 8 2007, 19:43) *
Но программа не сбивается.
Надо ли реагировать?

Я тоже получал такое сообщение, когда указатель стека возвращался в исходное состояние.
Вначале искал ошибку у себя в программе, но не найдя, пришел к выводу что это ошибка симулятора.

Реагировать на сообщение или не реагировать. Если адрес не выше чем адрес устанавливаемый при инициализции, то реагировать не нужно.

Цитата
В моём случае сообщение возникает тоже при вызове функции по указателю.

В моем случае тоже был задействован ICall
singlskv
Цитата(_Артём_ @ Jun 9 2007, 18:43) *
Как я понял из поста "Вызов функции по указателю на функцию., Переполнение стека AVR Simulator: Stack Underflow at 0x01f3." AVRStudio выдаёт неправильное сообщение.

Ну все-таки, как правильно заметил Сергей Борщ, это не переполнение а
наоборот "недополнение" : )
Цитата
В моём случае сообщение возникает тоже при вызове функции по указателю.
Т.е. на этот счёт можно не беспокоится.

Если warning возникает при вызове функции через указатель то беспокоиться точно не о чем.
Ну или если длинный case который часто компиляторами оптимизируется через
асемблерную команду ICALL.

Если быть точным, этот warning возникает не в момент вызова ICALL, а при возврате из
функции. Это баг/фича AVR Studio, он почему-то не считает вызов через ICALL вызовом
функции, и когда в конце функции встречает RET очень сильно удивляется 07.gif
IgorKossak
Цитата(singlskv @ Jun 9 2007, 18:19) *
Ну все-таки, как правильно заметил Сергей Борщ, это не переполнение а
наоборот "недополнение" : )

Точнее это называется "переисчерпание".
singlskv
Цитата(IgorKossak @ Jun 9 2007, 21:09) *
Точнее это называется "переисчерпание".

Ну наверное все-таки более правильно это было бы перевести как
"исчерпание" стека, только это никто не поймет, и все, все равно назовут это
переполнением smile.gif
по этому и возникают:
"переисчерпание"
"недополнение"
и т.д.
вобщем underflow одним словом biggrin.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.