День добрый!
Не могу понять в чем дело: есть связка AT91SAM7SE и внешняя SRAM 512кБ х 16 бит 100 МГц.
Линкеру указано размещать код в младшую половину внешней SRAM, данные в старшую половину, стеки и коды прерываний - во внутреннюю SRAM, отмаппированную на нулевой адрес.
Программа выполняется нормально, и чтение и запись в SRAM проходит... Пока не понадобилось прочесть из нее побайтно (ассемблерная команда LDRB). Тут и начались фокусы - читается абсолютная фигня, даже близко не похожая на оригинальные значения.
Среда - IAR 5.11, память подключена к SMC и сконфигурирована как 16-битная:
Wait States (NWS) = 0
Wait State Enable (WSEN) = 1
Data Float Time (TDF) = 0
Byte Access Type (BAT) = 1
Data Bus Width (DBW) = 1
ACSS = 0
RWSETUP = 0
RWHOLD = 0
Что я не так делаю?