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

 
 
 
Reply to this topicStart new topic
> CSTACK and RSTACK filled to 100%, как устранить выдачу error и правл. вычеслить стек
Lexa2007
сообщение Nov 2 2007, 22:24
Сообщение #1





Группа: Новичок
Сообщений: 2
Регистрация: 13-08-07
Пользователь №: 29 758



Прошу помочь, кто знает как устронить выдачу сообщения после компеляции при использовании debugger. ATmega32

The stack 'CSTACK' is filled to 100% (512 bytes used out of 512).

такое же и для RSTACK.

При изменени размера через Projеct->Options->General..->System -> DATA CSTACK and Level Setting for RSTACK можно было видить изменения в распределении размера стека.

Выдача сообщении о stack overflow не смотри на увеличению стека не ушло.


Зарание блогадарен!!!!
Go to the top of the page
 
+Quote Post
Mayc
сообщение May 24 2012, 08:20
Сообщение #2





Группа: Новичок
Сообщений: 3
Регистрация: 3-11-09
Из: Ufa, Russia
Пользователь №: 53 396



Аналогичная проблема, компилятор IAR без оптимизации программного кода.
Подозреваю, что переменные записываются (возможно при работе с массивом через указатель) в область стека и он соотвественно переполняется. Если проблему как-то решили прошу отписаться в этой ветке) Если нет давайте вместе побеждать и получать опыт! wacko.gif

Сообщение отредактировал IgorKossak - May 24 2012, 12:13
Причина редактирования: бездумное цитирование
Go to the top of the page
 
+Quote Post
sKWO
сообщение May 26 2012, 14:17
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 355
Регистрация: 27-03-07
Из: Україна, Чуднів
Пользователь №: 26 530



интересная статья, посмотрите здесь
кроме того, прочитайте по поводу настройки линкер файла, для начала хотя бы AVR032.
в общем, на форуме часто подымалась, воспользуйтесь поиском.


--------------------
нельзя недооценивать предсказуемость глупости
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение May 26 2012, 16:11
Сообщение #4


Гуру
******

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



QUOTE (Mayc @ May 24 2012, 11:20) *
(возможно при работе с массивом через указатель)
А указатель-то чем провинился?


--------------------
На любой вопрос даю любой ответ
"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
sKWO
сообщение May 26 2012, 17:14
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 355
Регистрация: 27-03-07
Из: Україна, Чуднів
Пользователь №: 26 530



Цитата(Mayc @ May 24 2012, 11:20) *
Подозреваю, что переменные записываются (возможно при работе с массивом через указатель) в область стека и он соотвественно переполняется.

Если переменные локальные, то как правило они размещаются в стеке. При большой вложенности функций вы и получите выше описанный результат, также если Вы используете в качестве аргумента в вызываемых функциях массив то переполнить стек нет вопросов. Для экономии стековой памяти используют указатель в вызываемых функциях как параметр.
Это и говорит Вам Сергей Борщ.


--------------------
нельзя недооценивать предсказуемость глупости
Go to the top of the page
 
+Quote Post

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

 


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


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