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

 
 
> Помощь новичку, Сообщение IAR
Anjey_N
сообщение Dec 17 2007, 08:22
Сообщение #1


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

Группа: Участник
Сообщений: 80
Регистрация: 12-01-07
Из: Энергодар Украина
Пользователь №: 24 374



Уважаемые знатоки, ответьте! Что означает сообщение IAR

Error[e16]: Segment CSTACK (size: 0x20 align: 0) is too long for segment definition. At least 0xe more bytes needed. The problem occurred while processing the segment placement command "-Z(DATA)CSTACK+_..X_CSTACK_SIZE=_..X_SRAM_TBASE:+_..X_SRAM_TSIZE", where at the moment of placement the available memory ranges were "DATA:ee-ff"
Reserved ranges relevant to this placement:
DATA:60-97 TINY_I
DATA:98-ed TINY_Z
DATA:ee-ff CSTACK


МК ATmega16
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 4)
Dog Pawlowa
сообщение Dec 17 2007, 08:57
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(Anjey_N @ Dec 17 2007, 12:22) *
Уважаемые знатоки, ответьте! Что означает сообщение IAR

Error[e16]: Segment CSTACK (size: 0x20 align: 0) is too long for segment definition. At least 0xe more bytes needed. The problem occurred while processing the segment placement command "-Z(DATA)CSTACK+_..X_CSTACK_SIZE=_..X_SRAM_TBASE:+_..X_SRAM_TSIZE", where at the moment of placement the available memory ranges were "DATA:ee-ff"
Reserved ranges relevant to this placement:
DATA:60-97 TINY_I
DATA:98-ed TINY_Z
DATA:ee-ff CSTACK
МК ATmega16

Для ответа не нужно быть знатоком - в ОЗУ не хватает места для стека.


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
Anjey_N
сообщение Dec 17 2007, 18:27
Сообщение #3


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

Группа: Участник
Сообщений: 80
Регистрация: 12-01-07
Из: Энергодар Украина
Пользователь №: 24 374



Цитата(Dog Pawlowa @ Dec 17 2007, 12:57) *
Для ответа не нужно быть знатоком - в ОЗУ не хватает места для стека.


Спасибо.
Ошибка исчезла, когда я в графе data stack поставил 0х10.
Насколько я понимаю я увеличил размер стека. Только почему для увеличения размера нужно указывать меньшее число?

Ошибка выдавалась при размере 0x20
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Dec 17 2007, 18:42
Сообщение #4


Гуру
******

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



Цитата(Anjey_N @ Dec 17 2007, 20:27) *
Насколько я понимаю я увеличил размер стека. Только почему для увеличения размера нужно указывать меньшее число?
Вы уменьшили размер стека. Соответственно, под него требуется резервировать меньше памяти и теперь он влез. Но есть сомнение, что программе, которая заняла все ОЗУ хватит 16 байт стека данных - в нем выделяется память под локальные переменные, там же компилятор сохраняет регистры в прерываниях. Попробуйте освободить ОЗУ за счет чего-нибудь другого - уменьшайте количество глобальных переменных, например. Или включите модель памяти Small вместо Tiny - станет доступно все ОЗУ.


--------------------
На любой вопрос даю любой ответ
"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
Anjey_N
сообщение Dec 18 2007, 18:01
Сообщение #5


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

Группа: Участник
Сообщений: 80
Регистрация: 12-01-07
Из: Энергодар Украина
Пользователь №: 24 374



Цитата(Сергей Борщ @ Dec 17 2007, 22:42) *
Вы уменьшили размер стека. Соответственно, под него требуется резервировать меньше памяти и теперь он влез. Но есть сомнение, что программе, которая заняла все ОЗУ хватит 16 байт стека данных - в нем выделяется память под локальные переменные, там же компилятор сохраняет регистры в прерываниях. Попробуйте освободить ОЗУ за счет чего-нибудь другого - уменьшайте количество глобальных переменных, например. Или включите модель памяти Small вместо Tiny - станет доступно все ОЗУ.

Ваш совет мне помог. Я переключил модель памяти на Small, теперь без ошибок. Спасибо!
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 00:22
Рейтинг@Mail.ru


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