取消
显示结果 
搜索替代 
您的意思是: 
Highlighted
Visitor
Visitor
761 次查看
注册日期: ‎03-25-2019

将AXIDMA的工作模式设置到sg和mcdma的模式,一个TX通道,两个RX通道,通过TX通道发送时只发了一个HSIZE的长度

有个问题请教,DMA传输时工作模式设置成sg和mcdma的模式,一个TX(MM2S)通道,两个RX(S2MM模式,tdest分别为0和1),通过TX发送(VSIZE x  HSIZE的数据),RX轮流接收,但是问题出现TX发送时只发送了一个HSIZE长度大小的数据后就来了中断,没有继续接下来发送,请问下是什么原因?是哪里出了问题?请帮忙看下

标记 (3)
0 项奖励
4 条回复4
Highlighted
Xilinx Employee
Xilinx Employee
710 次查看
注册日期: ‎05-11-2010

回复: 将AXIDMA的工作模式设置到sg和mcdma的模式,一个TX通道,两个RX通道,通过TX通道发送时只发了一个HSIZE的长度

建议你看一下PG021的multi channel那一节,里面有关于Tx/Rx Descriptor的介绍。Descriptor里面有包头(SOP)和包尾(EOP)的设置,一个包(packet)内,TID、TDEST和TUSER是不能变的。另外还有一些其他限制,比如,

• Does not support descriptor queuing in S2MM path for multichannel mode
• Does not support small packet sizes for S2MM path (back-to-back packets of 4 or less data beats)
• For a 2-D access the address and the Hsize have to be aligned to the Memory Map data width.

你可以用driver的multi channel例子试一下。

\SDK\2018.3\data\embeddedsw\XilinxProcessorIPLib\drivers\axidma_v9_8\examples\xaxidma_example_multichan_sg_intr.c

0 项奖励
Highlighted
Visitor
Visitor
675 次查看
注册日期: ‎03-25-2019

回复: 将AXIDMA的工作模式设置到sg和mcdma的模式,一个TX通道,两个RX通道,通过TX通道发送时只发了一个HSIZE的长度

谢谢回复,在PG021中multichannel部分,发现MM2S(TX) descriptor和S2MM(RX) descriptor中的结构是不一样的,但是代码中没有体现出来,为什么有这个不一致?

0 项奖励
Highlighted
Xilinx Employee
Xilinx Employee
672 次查看
注册日期: ‎05-11-2010

回复: 将AXIDMA的工作模式设置到sg和mcdma的模式,一个TX通道,两个RX通道,通过TX通道发送时只发了一个HSIZE的长度

PG021 table 2-42和table 2-43里有multichannel mode下MM2S、S2MM的descriptor每一位作用和操作方式的介绍。结合MM2S和S2MM的数据流向和AXI4-Stream/AXI4_MM转换,这些descriptor的意义不难理解。

0 项奖励
Highlighted
Newbie
Newbie
585 次查看
注册日期: ‎05-20-2019

回复: 将AXIDMA的工作模式设置到sg和mcdma的模式,一个TX通道,两个RX通道,通过TX通道发送时只发了一个HSIZE的长度

你好,请问你的问题结局了吗?我使用了赛灵思driver里面的mcdma_v1.0的poll data 例子,我就使用了两个通道,可是第二个通道无法收到数据。

0 项奖励