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

 
 
> Стек в IAR, IAR выдает ошибку
ILYCHOFF
сообщение Jul 3 2006, 05:13
Сообщение #1


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

Группа: Свой
Сообщений: 78
Регистрация: 5-07-05
Из: Великий Новгород
Пользователь №: 6 536



Не очень давно работаю с IAR. Вот линкер выдал такую ошибку. Что это значит, слишком большой стек? Как тогда правильно определить его размер?


Error[e16]: Segment CSTACK (size: 0x20 align: 0) is too long for segment definition. At least 0x1e 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:fe-ff"
Reserved ranges relevant to this placement:
DATA:60-dc TINY_I
DATA:dd-fd TINY_Z
DATA:fe-ff CSTACK
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
junoSynthesizer
сообщение Nov 28 2006, 17:34
Сообщение #2


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

Группа: Свой
Сообщений: 83
Регистрация: 25-11-05
Из: odessa
Пользователь №: 11 397



позволю себе поднять тему.

люди, подскажите... а то тоже возникли проблемы с нехваткой ОЗУ в АТмеге16. первый раз столкнулся с этим, необходима помощь в понимании.

вопрос первый:
под что идут CSTACK и RSTACK соответственно при работе программы?
насколько я понимаю, RSTACK - исключительно под адреса возврата из функций (может ещё под локальные переменные), а CSTACK под передаваемые в функции параметры?

я никак не могу понять, что куда и зачем мне в памяти размещает иар.

в карте линковщика написано
474 bytes of DATA memory (+ 21 absolute )
при 1 кб доступных. но стоит мне добавить 9-байтовый массив - всё, начинается фигня, как бы я ни крутил параметры стека.

TINY_I DATA 00000060 Predefined 0
TINY_Z DATA 00000060 - 000000C0 61 Relative 0
CSTACK DATA 000000C1 - 000000F5 35 Predefined 0
RSTACK DATA 000000F6 - 00000239 144 Predefined 0
помогите так же разобраться с этим. под что идёт куча?

у меня максимальная вложенность функций равна 5. но при размере RSTACK меньше 140 еначинаются зависания...
совсем запутался.
да, ещё: в программе не используется ничего больше uint. максимально объёмные передаваемые данные в функцию - в сумме не больше 4х байт.


--------------------
Вся жизнь - ништяк, все бабы - леди, а солнце - шар дающий свет
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- ILYCHOFF   Стек в IAR   Jul 3 2006, 05:13
- - arttab   Какой мк и сколько вы выделили под стек?   Jul 3 2006, 07:21
- - ILYCHOFF   МК Мега 16 CSTACK Size 0x20 RSTACK 16 значения п...   Jul 3 2006, 07:52
- - Andy Mozzhevilov   Сегмент стека не удалось разместить в памяти, то е...   Jul 3 2006, 07:57
- - Abatt   наверно программа у вас очень много ОЗУ использует...   Jul 3 2006, 08:32
- - ILYCHOFF   Вот я и не могу понять почему не хватает ОЗУ... Я ...   Jul 3 2006, 10:32
|- - _Bill   Цитата(ILYCHOFF @ Jul 3 2006, 13:32) Вот ...   Jul 3 2006, 11:47
- - ILYCHOFF   Разместил весь текст во флеш проблемы решились... ...   Jul 4 2006, 10:45
|- - _Bill   Цитата(ILYCHOFF @ Jul 4 2006, 13:45) Разм...   Jul 4 2006, 11:03
- - Andy_F   А существуют ли какие-то более ли менее чёткие кри...   Aug 3 2006, 07:57
|- - _Bill   Цитата(Andy_F @ Aug 3 2006, 10:57) Просто...   Aug 3 2006, 08:53
|- - Andy_F   Цитата(_Bill @ Aug 3 2006, 12:53) На этап...   Aug 3 2006, 19:50
|- - zltigo   Цитата(_Bill @ Aug 3 2006, 11:53) На этап...   Aug 3 2006, 19:57
|- - rezident   Цитата(zltigo @ Aug 4 2006, 01:57) Цитата...   Aug 3 2006, 20:51
|- - _Bill   Цитата(zltigo @ Aug 3 2006, 22:57) Увы, л...   Aug 5 2006, 16:44
- - IgorKossak   junoSynthesizer, судя по листингу сегментов, Вы вы...   Nov 28 2006, 17:58
- - junoSynthesizer   к куче обращаются команды malloc и иже с ней? а ес...   Nov 28 2006, 19:03
- - IgorKossak   Цитата(junoSynthesizer @ Nov 28 2006, 18...   Nov 30 2006, 13:43


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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 16:09
Рейтинг@Mail.ru


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