Доброго времени суток! Как побороть следущее в IAR
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено haker_fox 23 сентября 2005 г. 04:38

Error[e16]: Segment CSTACK (size: 0x40 align: 0) is too long for segment definition. At least 0x3d 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:fd-ff"
Reserved ranges relevant to this placement:
DATA:60-fc TINY_Z
DATA:fd-ff CSTACK

В конфе искал поиском, не очень помогло (а может х##во искал).
В руководстве на компилятор тоже не нашел.

В проге опеределены два массива
#define BUF_PAC_SIZE 32 //количество байт данных

//реальный размер сетевого буфера = количество байт данных + 3(ADR, CMD, N)
#define BUF_NET_SIZE BUF_PAC_SIZE+3


unsigned char buf_net_rx[BUF_NET_SIZE]; //буфер для приема пакета
unsigned char buf_net_tx[BUF_NET_SIZE-1]; //буфер для передачи пакета (меньше на 1, т.к. не надо передавать адрес)

и при увеличении BUF_PAC_SIZE хотябы на 2 вылетает эта ошибка. Я так понял, что нужно править XCL файл (или нет)? Но как? Кстати при увеличении того же CSTACK вылетает эта же ошибка, правда цифры немного другие. Вообще у МК кило ОЗУ должно же его хватить.
А так (если не увеличивать размер массивов) все компилируется на ура.

Компилятор IAR EWAVR 4.11A, МК ATmega8-16PI
CSTACK=0x40, RSTACK=0x40, HEAP=0x10 - это мои текущие параметры

Вопрос ламерский, я понимаю, так что извиняюсь за пустую трату времени

Если кому удобно, то вот можно и здесь ответить ICQ 339085018

Заранее Всем большое спасибо!

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru