|
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