Долблю 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 и т.д.