Thread 中讨论的其他器件:SYSBIOS、
工具/软件:Linux
你(们)好
使我们复杂化 的是、DSP (c66x)将堆复制 Linux 的共享 memoy (CMEM)到 McASP。
我们知道 EDMA 会将堆 内存发送到上述进程的 McASP。
但是、当我们运行视频解码、去花边、GPU (vivante、SGX)时、EDMA 会出现问题。
我知道 Sillicon Errat 说"i868—McASP 到 EDMA 同步级别事件可能会丢失。"。
然后、我们尝试将堆内存修改 为 DSP 的 L2SRAM。 但我们有运行时错误。
DSP.cfg
VAR HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
var l2sramheapMemParams = new HeapMem.Params;
l2sramheapMemParams.size = 2560;
l2sramheapMemParams.sectionName ="L2SRAM"
program.global.myHeap = HeapMem.create (l2sramheapMemParams);
audioSample_io.c
静态空灌注(空)
{
#define L2SRAM_support
IHeap_handle iheap;
(笑声)
#ifdef L2SRAM_support
iheap = HeapMem_Handle_TO_XDC_Runtime_IHeap (myHeap);
其他
iheap = NULL; //默认堆 */
#endif
(笑声)
rxbuf[count]= Memory_calloc (iheap、Rx_FRAME_SIZE、BUFALIGN、&EB);
…
/* rxbuf[0] addr (@00800000) rxbuf[1] addr (@00800200)*/
log_info2 (" rxbuf[%d] addr (%p)\n"、count、rxbuf[count]);
(笑声)
状态= mcaspSubmitChan (hMcaspRxChan、&(rxFram[count]));
}
TI-processor-sdk-rtos\ipc_3_46_00_02\packages/ti\ipc\remoteproc\rsc_table_vayu_dsp.h
(笑声)
struct my_resource_table ti_ipc_remoteproc_ResourceTable ={
…
{
TYPE_DEVMEM、
DSP_Peripheral_L2SRAM、L3_Peripheral_L2SRAM、
L2SRAM_SIZE、0、"DSP_L2SRAM"、
}、
};
1. 我们发现** 2761 printk 消息被丢弃**[10.377149] 440000.OCP:L3标准错误:Master DSP1_DMA target GPMC (read):AT Address:0x40800308:Data Access in Supervisor mode during functional access */
如下所示。
#define DSP_PERFICE_L2SRAM 0x40800000
#define L3_peripheral_L2SRAM 0x40800000
#define L2SRAM_SIZE 0x40000
2. 我们找到 OMAP-iommu 40d01000.MMU:IOMMU 故障:DA 0x408001c0标志0x0
#define DSP_Peripheral_L2SRAM 0x800000
#define L3_peripheral_L2SRAM 0x40800000
#define L2SRAM_SIZE 0x40000
2. 我们找到 OMAP-iommu 40d01000.MMU:IOMMU 故障:DA 0x408001c0标志0x0
#define DSP_Peripheral_L2SRAM 0x800000
#define L3_peripheral_L2SRAM 0x800000
#define L2SRAM_SIZE 0x40000
EDMA 如何使用 DSP (c66x)的 L2SRAM?
非常感谢。
