ao_dma_start(tx_dma_index);
ao_arch_block_interrupts();
while (!ao_dma_done[tx_dma_index])
if (ao_sleep_for(&ao_dma_done[tx_dma_index], 1 + len))
break;
ao_dma_start(tx_dma_index);
ao_arch_block_interrupts();
while (!ao_dma_done[tx_dma_index])
if (ao_sleep_for(&ao_dma_done[tx_dma_index], 1 + len))
break;