TI中文支持网
TI专业的中文技术问题搜集分享网站

AWR1843: 运行EDMA_configChannel时进入MmwDemo_dssAssert

Part Number:AWR1843

static void MmwDemo_edmaBlockCopy(EDMA_Handle handle, h_u32 loadAddr, h_u32 runAddr, h_u16 size)
{
EDMA_channelConfig_t config;
volatile bool isTransferDone;

config.channelId = EDMA_TPCC0_REQ_FREE_0;
config.channelType = (h_u8)EDMA3_CHANNEL_TYPE_DMA;
config.paramId = (h_u16)EDMA_TPCC0_REQ_FREE_0;
config.eventQueueId = 0;

config.paramSetConfig.sourceAddress = (h_u32) SOC_translateAddress((h_u32)loadAddr,
SOC_TranslateAddr_Dir_TO_EDMA, H_NULL_PTR);
config.paramSetConfig.destinationAddress = (h_u32) SOC_translateAddress((h_u32)runAddr,
SOC_TranslateAddr_Dir_TO_EDMA, H_NULL_PTR);

config.paramSetConfig.aCount = size;
config.paramSetConfig.bCount = 1U;
config.paramSetConfig.cCount = 1U;
config.paramSetConfig.bCountReload = 0U;

config.paramSetConfig.sourceBindex = 0U;
config.paramSetConfig.destinationBindex = 0U;

config.paramSetConfig.sourceCindex = 0U;
config.paramSetConfig.destinationCindex = 0U;

config.paramSetConfig.linkAddress = EDMA_NULL_LINK_ADDRESS;
config.paramSetConfig.transferType = (h_u8)EDMA3_SYNC_A;
config.paramSetConfig.transferCompletionCode = (h_u8) EDMA_TPCC0_REQ_FREE_0;
config.paramSetConfig.sourceAddressingMode = (h_u8) EDMA3_ADDRESSING_MODE_LINEAR;
config.paramSetConfig.destinationAddressingMode = (h_u8) EDMA3_ADDRESSING_MODE_LINEAR;

/* don't care because of linear addressing modes above */
config.paramSetConfig.fifoWidth = (h_u8) EDMA3_FIFO_WIDTH_8BIT;

config.paramSetConfig.isStaticSet = false;
config.paramSetConfig.isEarlyCompletion = false;
config.paramSetConfig.isFinalTransferInterruptEnabled = true;
config.paramSetConfig.isIntermediateTransferInterruptEnabled = false;
config.paramSetConfig.isFinalChainingEnabled = false;
config.paramSetConfig.isIntermediateChainingEnabled = false;
config.transferCompletionCallbackFxn = H_NULL_PTR;
config.transferCompletionCallbackFxnArg = NULL;

if (EDMA_configChannel(handle, &config, false) != EDMA_NO_ERROR)
{
MmwDemo_dssAssert(0);
}

if (EDMA_startDmaTransfer(handle, config.channelId) != EDMA_NO_ERROR)
{
MmwDemo_dssAssert(0);
}

/* wait until transfer done */
do
{
if (EDMA_isTransferComplete(handle,
config.paramSetConfig.transferCompletionCode,
(bool *)&isTransferDone) != EDMA_NO_ERROR)
{
MmwDemo_dssAssert(0);
}
}
while (isTransferDone == false);

/* make sure to disable channel so it is usable later */
EDMA_disableChannel(handle, config.channelId, config.channelType);
}

报错信息:

[Cortex_R4_0] Debug: Launched the Initialization Task
Debug: Initialized the mmWave module
Debug: Synchronized the mmWave module
[C674X_0] Debug: EDMA initialized is OK
{module#8}: "../Source/BSW/Os/Os_main.c", line 1209: error {id:0x10000, args:[0x80d534, 0x80d534]}
xdc.runtime.Error.raise: terminating execution

?? ?:

与另外一个正常的工程相比,

前面这个是正常工程的,后面这个是上面报错工程的。有朋友直到是怎么回事吗?

谢谢!

,

Shine:

请问运行的是哪个toolbox里的哪个demo? 对demo有做修改么?

,

?? ?:

好像是以前的SRR demo,修改了demo。

帮忙看看正常的与报错的config的区别,能否从中找出原因?

谢谢!

,

Shine:

请问具体修改了哪里?看一下是否是内存RAM不够引起的?

赞(0)
未经允许不得转载:TI中文支持网 » AWR1843: 运行EDMA_configChannel时进入MmwDemo_dssAssert
分享到: 更多 (0)