Что за засада в IAR AVR 3.10C? (а мож я чего не пойму?)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено ПВ 03 мая 2004 г. 11:01

Есть внешнее ОЗУ 64Кбайта. Проц - Мега128, в XCL прописан внешний сегмент (внешняя микросхема ОЗУ 64Кх8):

-Z(DATA)EXTRAM=1100-FFFF

в этом же сегменте лежат 32 буфера по 0х778 байт:

__no_init char IOBuf [32][0x778] @ "EXTRAM";

Кладем байт в первую ячейку, вторуи и самую последнюю самого последнего буфера:

IOBuf [0][0] = 1;
IOBuf [0][1] = 1;
IOBuf [31][0x777] = 1;

и получаем такую фигню:

308 IOBuf [0][0] = 1;
\ 00000000 E001 LDI R16,1
\ 00000002 9300.... STS IOBuf,R16
309 IOBuf [0][1] = 1;
\ 00000006 9300.... STS (IOBuf + 1),R16
310 IOBuf [31][0x777] = 1;
\ 0000000A 9300.... STS (IOBuf - 4353),R16

На последнее "-4353" линкер долго и много ругается матерными словами (что на мой взгляд справедливо) - " Address out of range. Valid range is 0 to 65535 (0xFFFF)."

Вот я и встал враскоряку... :-(
Что за ерунда? Вроде все на месте, с какого бодуна компилер сует эти "-4353"?


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

Ответы



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

E-mail: info@telesys.ru