Thread 中讨论的其他器件:C2000WARE
工具与软件:
你(们)好
客户使用 DMA 通道6处理 SPI RX 缓冲区数据、初始化如下、SPI 发送了总共80个字(8个字* 10次):
DMADest = (Volatile UINT16 *) spiRecdata;
DMACH6AddrConfig (DMADest、&SpiaRegs.SPIRXBUF);
DMACH6BurstConfig (7、0、1);
DMACH6TransferConfig (9、0、1);
DMACH6ModeConfig (DMA_SPIARX、PERINT_ENABLE、Oneshot_disable、CONT_ENABLE、
SYNC_DISABLE、SYNC_SRC、OVRFLOW_DISABLE、CHEIN_BIT、
CHINT_END、CHINT_ENABLE);
起始地址与设置不一致问题是:0001 00FC 0001 0001应分配在0x0001A800上、而不是在0x001A821中分配。

调试结果如下:
在 初始化中、DMA 的目标是* spiRecdata、这意味着 spiRecdata[0] 。
该地址在.cmd 文件中分配
TO_CPU1_INTERNALSPI : origin = 0x01A800、length = 0x000600
#pragma DATA_SECTION (spiRecdata、"tOCPU1_SPI");//将 RX 数据映射到存储器
uint16 spiRecdata[80];
它与 DMA ADDR_SHADOW 对齐

但是在调试中、dst_beg_addr_active 随机变化、这会导致 目标起始地址移动到 spiRecdata[75]、但不会发生 spiRecdata[0]

是否有调试此问题的指南?
谢谢
Joe

