AZ. (26.12.2005 05:03, просмотров: 3163)
Переехал на IAR С и сразу проблема с линкером Делал на С обработчик таймера 0.
Код наращивался постепенно, и вдруг, после добавления простенького оператора, - сообщение:
Error[e16]. Segment CSTACK(size: 0x32 align: 0) is too long for segment definition.
At least 0x1 more bytes needed. The problem occured 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 avaiable memory ranges were "DATA: cf-ff"
Reserved ranges relevant to this placement:
DATA: 60-78 TINY-I
DATA: 79-ce TINY-Z
DATA: cf-ff CSTACK
Как я понял, нехватает стека данных. Выносил локальные переменные в глобальные - легче не стало.
Пробовал перейти на модель Small - та же история.
Где выход?
ПисАть обработчик на ассемблере?