Долблю Nios + внешнее ОЗУ в 32 разряда. Хочу писать в память байты а читать слова по 4 байта за раз. Че то не получается. Перепробовал всё и вообще запутался.
Выполняю запись по байтам for(i=0; i<8; i++) { IOWR_8DIRECT(SRAM_BASE, i, i); }
Потом читаю IORD_32DIRECT(SRAM_BASE, i); получаю 0x00000000 0x00000100 0x00020000 0x03000000
Если читаю IORD(SRAM_BASE, i); получаю 0x00000000 0x00000004
А КАК ПРОЧИТАТЬ 0x03020100 ? Всяко пробовал, не получается. Может дело в Native Address Alignment или Dynamic Bus Sizing? Только не врублюсь в чем разница если я пишу по всем адресам подряд байты, а читаю их потом по 4 за раз. Они же физически должны лежать в памяти как адрес 0 = 0x03020100, адрес 1 = 0x07060504 и т.д.
--------------------
В действительности всё не так, как на самом деле.
|