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

 
 
 
Reply to this topicStart new topic
> Simulator AVRStudio
_Артём_
сообщение Jun 8 2007, 15:30
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Что значит сообщение в окне Messages:
AVR Simulator: Stack Underflow at 0x3ca6
Go to the top of the page
 
+Quote Post
GDI
сообщение Jun 8 2007, 15:31
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



Английского не знаете? Перевожу: Переполнение стека по адресу 0x3ca6


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Jun 8 2007, 15:46
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(GDI @ Jun 8 2007, 18:31) *
Английского не знаете? Перевожу: Переполнение стека по адресу 0x3ca6

Это понятно...
Непонятно можно ли верить этому сообщению, контролирует ли AVRStudio стек?
Go to the top of the page
 
+Quote Post
wodya
сообщение Jun 8 2007, 16:01
Сообщение #4


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

Группа: Свой
Сообщений: 112
Регистрация: 27-03-07
Пользователь №: 26 549



На чем пишете?
Я пишу на ICC и в моей практике такого рода сообщения означали проблемы со связью с MK JTAG.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jun 8 2007, 16:27
Сообщение #5


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(GDI @ Jun 8 2007, 18:31) *
Перевожу: Переполнение стека по адресу 0x3ca6
Только не переполнение, а наоборот - попытка вытащить что-либо из пустого стека.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Jun 8 2007, 16:43
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(Сергей Борщ @ Jun 8 2007, 19:27) *
Только не переполнение, а наоборот - попытка вытащить что-либо из пустого стека.

Но программа не сбивается.
Надо ли реагировать?

Сообщение отредактировал _Артём_ - Jun 8 2007, 16:43
Go to the top of the page
 
+Quote Post
WHALE
сообщение Jun 8 2007, 17:28
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 902
Регистрация: 2-01-06
Из: Краснодар
Пользователь №: 12 768



Где не сбивается-в симуляторе за 1-2 прохода?Это ни о чем не говорит,в реале может глючить со страшной силой,если конвеер стека нарушается.


--------------------
"Hello, word!" - 17 errors 56 warnings
Go to the top of the page
 
+Quote Post
singlskv
сообщение Jun 8 2007, 19:55
Сообщение #8


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(Сергей Борщ @ Jun 8 2007, 20:27) *
Только не переполнение, а наоборот - попытка вытащить что-либо из пустого стека.

Угу.
Вот здесь я уже отвечал:
http://electronix.ru/forum/index.php?showt...3&hl=studio
, но похоже никто не поверил smile.gif
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Jun 9 2007, 14:43
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(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 выдаёт неправильное сообщение.
В моём случае сообщение возникает тоже при вызове функции по указателю.
Т.е. на этот счёт можно не беспокоится.
Go to the top of the page
 
+Quote Post
defunct
сообщение Jun 9 2007, 15:04
Сообщение #10


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(_Артём_ @ Jun 8 2007, 19:43) *
Но программа не сбивается.
Надо ли реагировать?

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

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

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

В моем случае тоже был задействован ICall
Go to the top of the page
 
+Quote Post
singlskv
сообщение Jun 9 2007, 15:19
Сообщение #11


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



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

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

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

Если быть точным, этот warning возникает не в момент вызова ICALL, а при возврате из
функции. Это баг/фича AVR Studio, он почему-то не считает вызов через ICALL вызовом
функции, и когда в конце функции встречает RET очень сильно удивляется 07.gif
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Jun 9 2007, 17:09
Сообщение #12


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(singlskv @ Jun 9 2007, 18:19) *
Ну все-таки, как правильно заметил Сергей Борщ, это не переполнение а
наоборот "недополнение" : )

Точнее это называется "переисчерпание".
Go to the top of the page
 
+Quote Post
singlskv
сообщение Jun 9 2007, 20:33
Сообщение #13


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



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

Ну наверное все-таки более правильно это было бы перевести как
"исчерпание" стека, только это никто не поймет, и все, все равно назовут это
переполнением smile.gif
по этому и возникают:
"переисчерпание"
"недополнение"
и т.д.
вобщем underflow одним словом biggrin.gif
Go to the top of the page
 
+Quote Post

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

 


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


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