主题:SysConfig 中讨论的其他器件
工具/软件:
您好、
我的客户希望使用 BCDMA 进行 SPI 传输。 他使用 mcu_plus_sdk_am62x_11_00_00_16 中的“umax_memcpy_interrupt.c"示“示例作为起点。
顺便说一下、SDK 中有一个 使用 PKTDMA 的“mcspi_loopback_dma"示“示例。
他希望使用 BCDMA、因为他已在其他进程中使用它并重复使用代码。
他在 sysconfig/代码中添加了必要的更改、现在到 SPI 的数据传输/从 SPI 传输数据似乎可以正常工作。
但数据传输后不会产生中断。
【调试情况】
他检查了 UDMA_eventRegister () 函数中的“cqEventPrms"参数“参数并找到
vintrNum 为 2Ch (44)。 这意味着将第 44 个中断聚合器虚拟中断分配给事件。
他还检查了 位于 0x4802C020 的 IntrStatusReg 的第 44 个中断、并确认 DMA 传输完成后该值更改为 0x00000001。
但是“cqEventPrms",“, coreIntrNum、coreIntrNum 为 0h、应该映射到内核中断。
他还检查了 UDMA_init 之后 gUdmaDrvObj 中的“rmInitPrms"参数“参数。
startBlkCopyUhcCh = 0x00000000 (0)
numBlkCopyUhcCh = 0x00000000 (0)
startBlkCopyHcCh = 0x00000000 (0)
numBlkCopyHcCh = 0x00000000 (0)
startBlkCopyCh = 0x00000012 (18)
numBlkCopyCh = 0x00000006 (6)
startTxUhcCh = 0x00000000 (0)
numTxUhcCh = 0x00000000 (0)
startTxHcCh = 0x00000000 (0)
numTxHcCh = 0x00000000 (0)
startTxCh = 0x0000000C (12)
numTxCh = 0x00000006 (6)
startRxUhcCh = 0x00000000 (0)
numRxUhcCh = 0x00000000 (0)
startRxHcCh = 0x00000000 (0)
numRxHcCh = 0x00000000 (0)
startRxCh = 0x00000012 (18)
numRxCh = 0x00000006 (6)
startMappedTxCh = {0x00000000,0x00000000,0x00000000,0x00000000}
numMappedTxCh = {0x00000000,0x00000000,0x00000000,0x00000000}
startMappedRxCh = {0x00000000,0x00000000,0x00000000,0x00000000}
numMappedRxCh = {0x00000000,0x00000000,0x00000000,0x00000000}
startMappedRing = {0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000}
numMappedRing = {0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000}
startFreeFlow = 0x00000000 (0)
numFreeFlow = 0x00000000 (0)
startFreeRing = 0x00000000 (0)
numFreeRing = 0x00000000 (0)
startGlobalEvent = 0x0000020D (525)
numGlobalEvent = 0x00000080 (128)
startVintr = 0x0000002C (44)
numVintr = 0x00000012 (18)
startIrIntr = 0x00000000 (0)
numIrIntr = 0x00000012 (18)
startC7xCoreIntr = 0x00000000 (0)
他认为 startVintr (44) 与 vintrNum 有关。 和 startIrIntr (0) 与 coreIntrNum 相关。
问题:
Q1) 首先、是否可以使用 BCMDA 进行 SPI 数据传输?
Q2) 如果 Q1 的答案是肯定的、那么没有生成 DMA 完成中断的潜在原因是什么? 任何调试建议?
谢谢。此致、
田代浩一郎