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

 
 
> Переполнен стек
_trunk_
сообщение Sep 29 2011, 11:35
Сообщение #1


Участник
*

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



Добрый день. Пишу программу на С для Attiny25. Результат моделирования в Proteus'e таков: несколько секунд все идет нормально, потом моделирование останавливается, появляется ошибка - Pop Program stack: SP is not initialized. Насколько я понимаю, в этот момент переполняется стек. Подскажите, каким образом выйти из этой ситуации?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
_trunk_
сообщение Sep 29 2011, 15:13
Сообщение #2


Участник
*

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



да, прерывание использую. выход из ситуации нашел. в обработчике прерываний у меня объявлялся массив. этот массив сделал глобальным и стека стало хватать. по меню пройдусь) спасибо за помощь)
Go to the top of the page
 
+Quote Post
xemul
сообщение Sep 30 2011, 16:14
Сообщение #3



*****

Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731



Цитата(_trunk_ @ Sep 29 2011, 19:13) *
в обработчике прерываний у меня объявлялся массив. этот массив сделал глобальным и стека стало хватать.

В массив в прерывании Вы, по-видимому, что-то пишете, поэтому не забудьте объявить его volatile.
Go to the top of the page
 
+Quote Post
defunct
сообщение Oct 1 2011, 22:15
Сообщение #4


кекс
******

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



Цитата(xemul @ Sep 30 2011, 19:14) *
В массив в прерывании Вы, по-видимому, что-то пишете, поэтому не забудьте объявить его volatile.

volatile можно ставить на семафор взводимый в прерывании, который говорит о том, что данные поменялись, но никак не на сами данные - иначе это равносильно тотальному отключению оптимизации.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Oct 7 2011, 09:22
Сообщение #5


Гуру
******

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



QUOTE (defunct @ Oct 2 2011, 01:15) *
volatile можно ставить на семафор взводимый в прерывании, который говорит о том, что данные поменялись, но никак не на сами данные - иначе это равносильно тотальному отключению оптимизации.
Спорно. Спорили тут полтора года назад: http://electronix.ru/forum/index.php?s=&am...st&p=747603. С наступлением эры LTO (link-time optimization) в gcc может стать чертовски актуально.


--------------------
На любой вопрос даю любой ответ
"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

Сообщений в этой теме
- _trunk_   Переполнен стек   Sep 29 2011, 11:35
- - kovigor   Цитата(_trunk_ @ Sep 29 2011, 14:35) Подс...   Sep 29 2011, 13:33
- - _trunk_   рекурсии не использую. а как увеличить стек?   Sep 29 2011, 14:26
|- - kovigor   Цитата(_trunk_ @ Sep 29 2011, 17:26) реку...   Sep 29 2011, 14:43
- - 777777   Цитата(_trunk_ @ Sep 29 2011, 19:13) да, ...   Sep 30 2011, 12:10
|- - paskal   Цитата(777777 @ Sep 30 2011, 16:10) Интер...   Sep 30 2011, 16:07
|- - 777777   Цитата(paskal @ Sep 30 2011, 20:07) Очеви...   Oct 5 2011, 04:02
|- - _Артём_   Цитата(xemul @ Sep 30 2011, 19:14) В масс...   Sep 30 2011, 18:21
|- - defunct   Цитата(Сергей Борщ @ Oct 7 2011, 12:22) С...   Oct 7 2011, 21:55
|- - Сергей Борщ   QUOTE (defunct @ Oct 8 2011, 00:55) Volat...   Oct 8 2011, 08:59
|- - defunct   Цитата(Сергей Борщ @ Oct 8 2011, 11:59) Я...   Oct 8 2011, 23:18
|- - Сергей Борщ   QUOTE (defunct @ Oct 9 2011, 02:18) Если ...   Oct 10 2011, 07:13
|- - defunct   Цитата(Сергей Борщ @ Oct 10 2011, 10:13) ...   Oct 10 2011, 21:39
|- - Сергей Борщ   QUOTE (defunct @ Oct 11 2011, 00:39) Пото...   Oct 11 2011, 06:27
|- - defunct   Много всего написал, потом удалил, потому как не х...   Oct 16 2011, 23:04
|- - Сергей Борщ   QUOTE (defunct @ Oct 17 2011, 02:04) Пере...   Oct 17 2011, 06:07
|- - defunct   Цитата(Сергей Борщ @ Oct 17 2011, 09:07) ...   Oct 17 2011, 12:03
- - Абырвалг   Цитата(_trunk_ @ Sep 29 2011, 20:13) да, ...   Oct 7 2011, 04:57


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

 


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


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