CIII, использую 2 чипа по 64МБ, объединенные в одну шину (чипы сидят сверху кристалла, TOP_EDGE).
Код для записи вот такой:
Код
#define START ALTMEMDDR_0_BASE
#define END ALTMEMDDR_0_BASE + (ALTMEMDDR_0_SPAN>>2)
int main ()
{
unsigned long data=0xAA55AA55;
unsigned long i;
int leds=0x1, dir=0;
printf("Writing...\n");
for (i=START; i<END; i++)
{
printf(".");
IOWR_32DIRECT(START, i*4, data); //<<<<< не работает так
//*(alt_u32 *)i = data; //<<<<< так тоже не работает
data ++;
}
printf("done");
while(1);
}
#define END ALTMEMDDR_0_BASE + (ALTMEMDDR_0_SPAN>>2)
int main ()
{
unsigned long data=0xAA55AA55;
unsigned long i;
int leds=0x1, dir=0;
printf("Writing...\n");
for (i=START; i<END; i++)
{
printf(".");
IOWR_32DIRECT(START, i*4, data); //<<<<< не работает так
//*(alt_u32 *)i = data; //<<<<< так тоже не работает
data ++;
}
printf("done");
while(1);
}
В пошаговом режиме (в IDE) выполняется только 8 записей, после чего получаю вот такое фи:
assertion "m_state == STATE_DEBUG" failed: file "nios2debug.cpp", line 288
/cygdrive/c/altera/10.0/nios2eds/bin/nios2-download: line 601: 4524 Aborted (core dumped) nios2-gdb-server --cable 'USB-Blaster on localhost [USB-0]' --device 1 --instance 0 --sidp 0xc009610 --id 0x545a5839 --timestamp 1289484465 --tcpport auto --write-pid ./nios2-download.pid --thread-vars 'list:current=*OSTCBCur,first=*OSTCBList,next=$T->OSTCBNext_OFFSET,id=($T->OSTCBPrio_OFFSET:8)+1,sp=$T->OSTCBStkPtr_OFFSET,pc=OSCtxSw+OSCtxSw_SWITCH_PC'
В режиме Run просто ничего не происходит - не печатается даже первая точка.
В пояснение привожу необходимые скриншоты.
Где может сидеть косяк? Может память не подведена по таймингам?