|
Поставил 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