Докладываю, временно не было программатора, а теперь попробовал.
Код
int count = 0;
while(true)
{
int sz = (64 * 1024 * 1024) / 8;
xil_printf("\n\r----- %d\n\r", count++);
u64 *ddr2 = (u64*) XPAR_MCB_DDR2_S0_AXI_BASEADDR;
for(int i = 0; i < sz; i++) ddr2[i] = 0xAABBCCDD;
}
return 0;
Между ----- проходит 2.75 секунды на запись 64 Мб - это 24.4*10^6 байт/с, используется кэширование, память с 16-битным интерфейсом.
Прежде чем городить DMA, я бы поинтересовался - я смогу выжать больше чем жалкие 24 Мбайт/с? Или это предел?
P.S.
Думаю задействовать
http://xillybus.com как быстрое решение проблемы - хороший вариант?