This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:TI-RTOS
您好!
我使用的是 Processor SDK 3.0。
我想使用 DSP 上的 EDMA 将数据从 DDR 传输到 L2SRAM、反之亦然。 要配置 EDMA、我将引用 framecopy 链接(frameCopyAlgoLocalDMA.c 文件)
从 DDR 传输数据时,dst 地址将是 L2SRAM (即0x40800000),因此我已将 EDMA 配置为:
----
#define DSP1_L2SRAM_ADDR 0x40800000
。
。
//将数据写入 l2sram 的配置
pAlgHandle->pParamSet->destAddr = DSP1_L2SRAM_ADDR;
pAlgHandle->pParamSet->srcAddr =(uint32) inPtr[0];
pAlgHandle->pParamSet->srcBIdx = inPit[0];
pAlgHandle->pParamSet->destBIdx = inPit[0];
pAlgHandle->pParamSet->srcCIdx = 0;
pAlgHandle->pParamSet->destCIdx = 0;
pAlgHandle->pParamSet->aCnt = lineSizeInBytes;
pAlgHandle->pParamSet->bCnt =身高/NUM_OF_SLICE;
pAlgHandle->pParamSet->ccnt = 1;//否 帧数
pAlgHandle->pParamSet->bCntReload =身高/NUM_OF_SLICE;
pAlgHandle->pParamSet->opt = opt;
pAlgHandle->pParamSet->linkAddr = 0xFFFF;
//将数据写回 DDR 的配置
pAlgHandle->pParamSet->destAddr =(uint32) outPtr[0];
pAlgHandle->pParamSet->srcAddr = DSP1_L2SRAM_ADDR;
pAlgHandle->pParamSet->srcBIdx = outPit[0];
pAlgHandle->pParamSet->destBIdx = outPit[0];
pAlgHandle->pParamSet->srcCIdx = 0;
pAlgHandle->pParamSet->destCIdx = 0;
pAlgHandle->pParamSet->aCnt = lineSizeInBytes;
pAlgHandle->pParamSet->bCnt =身高/NUM_OF_SLICE;
pAlgHandle->pParamSet->ccnt = 1;
pAlgHandle->pParamSet->bCntReload =身高/NUM_OF_SLICE;
pAlgHandle->pParamSet->opt = opt;
pAlgHandle->pParamSet->linkAddr = 0xFFFF;
------
问题是、
DDR 和 L2SRAM 之间没有传输(输出屏幕上没有数据显示)。 在 RUM 时间、我也不会遇到任何编译时间错误。 我检查了统计信息、SCI_DSP1_EDMA 不消耗、甚至使用了 L2SRAM。
我还需要做什么才能使其正常工作?
这是什么>> SCI_DSP1_EDMA?
此致、
Kajal
您好 Rishabh、
我将从何处获得 DSP EDMA 的 TRM?
您能否检查什么是 L2CFG 以查看是否确实将 L2MODE 设置为0?
>>在哪个文件中定义了 L2CFG 或 L2MODE?
我在 >> vision_sdk/build/rtos/tda2xx/config_C66.Bld:78中获得了"L2MODE"一词: l2Mode: "32K",您是指此文件吗?
此致、
Kajal
您好 Rishabh、
您能给我指出 DSP EDMA 的特定 TRM 吗?
关于,
>>在哪个文件中定义了 L2CFG 或 L2MODE?
我在 >> vision_sdk/build/rtos/tda2xx/config_C66.Bld:78中获得了"L2MODE"一词: l2Mode: "32K",您是指此文件吗?
在哪里检查 L2MODE 是否设置为0?
此致、
Kajal
您好、Rishabh、
utils API 是包装程序,内部 IT 调用 EDMA3LLD API。 ( 如果我错了、请更正我)
您是否有任何关于建议 utils API 的问题?
在本例中、我将直接调用 EDMA API、但仍不会进行数据传输。
--------
我在调试时注意到的另一件事是、
1.当我使用 DST 地址作为 DSP2的 L2SRAM (即0x41000000)时、会发生数据传输(仅在 DSP1上执行)。
2.反之亦然。
这是怎么可能的?
此致、
Kajal
您好、Rishabh、
DSP1' SRAM:- 0x40800000
DSP2的 SRAM:- 0x41000000
上述本地地址是否正确? (我从映射文件中引用的这些地址>> mem_segure_define_BIOS.xs)
如果不是、您可以将我指向我要获取本地地址地图的位置。
此致、
Kajal。
您好 Rishabh、
关于您的第二个帖子、
0x40800000和0x41000000是 L3地址。 对于 DSP、本地地址为0x0080_0000。
您可以在 TDA2 TRM 中看到 DSP 存储器映射一章。
>>如果两个 DSP 都希望同时访问相同的 L2 SRAM 地址该怎么办?
此致、
Kajal
是的、但两个 DSP 都有其本地存储器、因此会有两个不同的本地地址、对吧? (如果我错了、请更正)
在 TRM 中、对于每个用户的本地存储器、我没有找到他们的地址。
此致、
Kajal
您好 Rishabh,
我还有一个疑问、
您能否检查什么是 L2CFG 以查看是否确实将 L2MODE 设置为0?
>>
从何处可以获取 L1和 L2配置的这些寄存器值?
只能看到 CCS、寄存器视图?
如果想为它们设置位、我将如何执行此操作?
此致、
Kajal