Помогите разобратся с DMA NIOS . Данные по DMA передаются в UART. UART в пакете выдаёт не больше 2х байт.
В зависимости от длинны пакета, первым передаётся либо первый байт либо второй. Вторым передаётся последний байт.
фрагмент кода :
ch2 = ALTERA_AVALON_DMA_CONTROL_BYTE_MSK
| ALTERA_AVALON_DMA_CONTROL_GO_MSK
| ALTERA_AVALON_DMA_CONTROL_LEEN_MSK
| ALTERA_AVALON_DMA_CONTROL_WCON_MSK
;
while(1){
alt_dcache_flush (dat_tr,8);
IOWR_ALTERA_AVALON_DMA_STATUS(DMA_0_BASE,0x0);
IOWR_ALTERA_AVALON_DMA_CONTROL(DMA_0_BASE,0x0);
// while((IORD_ALTERA_AVALON_DMA_STATUS(DMA_0_BASE) &2) ==2);///ждём
IOWR_ALTERA_AVALON_DMA_WADDRESS(DMA_0_BASE,UART_0_BASE + 4);
IOWR_ALTERA_AVALON_DMA_RADDRESS(DMA_0_BASE,(alt_u32) adrrr );
IOWR_ALTERA_AVALON_DMA_LENGTH(DMA_0_BASE,16);
IOWR_ALTERA_AVALON_DMA_CONTROL(DMA_0_BASE,ch2);
usleep(200*100);
}