IAR AVR 3.20B - новый релиз старых багов...
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено Павел В. 11 сентября 2004 г. 10:40

Поставил 3.20В, но легче не стало. Имеем дамп во внешнем ОЗУ (камни с внешней шиной данных до 64К):

__no_init volatile char ddd [50000] @ 0x1100;

__C_task void main(void)
{
PORTB = ddd [0x8000];
...

Получаем в асме:

> PORTB = ddd [0x8000];
000000BA 9100.... LDS R16,(ddd - 32768)
000000BE BB08 OUT 0x18,R16

и в линкере:

Error[e18]: Range error,
Address out of range. Valid range is 0 to 65535 (0xFFFF).
Source: LDS R16,(ddd - 32768)
What: (ddd + 0xFFFF8000) [0xFFFF9100]
Allowed range: 0x0 - 0xFFFF

Вот так. Любые смещения, большие 0x7FFF воспринимаются как отрицательные значания. Это было в 3.10х, видно так и осталось.

Короче пока внешнее ОЗУ только пользовать только кусочками, меньшими 32К... :-(

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

Ответы



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

E-mail: info@telesys.ru