在学习DMA批量传输数据到PS和使用模块AD7606这几个章节内容时,在疑惑XAXIDMA_SimpleTransfe()这个函数对应的DMA行为。
(1) PL端一直在采集数据(或者在PL端一直在构造数据),当达到一定数量时(比如1024后,拉起tlast信号,此时数据仅在第一级axis_data_fifo中,如何与之后的axis_dwidth_converter, axi_DMA之类的IP进行流数据交互)?
(2) 在SDK端使用XAXIDMA_SimpleTransfe()函数来发起DMA数据传输,长度比如1024个数据,方向S2MM,完成后进中断后,之后或者显示,或者lwip发送。我想请问,这个缓存机制下,采集慢,读取快,再加上FIFO缓存,数据不会丢。但是DMA读取的数如何保证是本次采集或者构造的1024个数据?由于一直在采集或者构造数据,axis_data_fifo中的数据需要被读走,不然会满,这里边的机制或者代码啥的,请大佬提点一下?
|