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.
众所周知c6678的DDR3可以扩展到8GB,而keystone给DDR3分配的起始地址为0x80000000,地址空间大小只有2GB,请问把C6678的DDR3扩展的8GB后,内核和EDMA如何直接访问DDR3?
需要通过什么方式进行地址映射才能访问?
注:因算法的需要数据存储不是连续的,一次EDMA读取的数据地址跨度超过2GB,请问如何设置才能用EDMA直接访问?
有没相应的测试例程??
因为32bit空间只有2G给DDR,因此需要通过MPAX进行映射,需要访问哪一段就做哪一段的映射,详见TMS320C66x DSP CorePac User Guide 7.3节;
超过2G直接访问时不可能的,你需要修改你的算法。
你好,
我们可以提供C6678上全套的商用平台软件。
下面回复您的问题:
DDR的8G空间物理空间是0x8 0000 0000 ~ 0x9 FFFF FFFF。C6678 DATASHEET Page25, table2-2 是复位后的初始状态,逻辑地址0x8000_0000~0xFFFF_FFFF映射DDR最下面的2G(0x8 00000000 : 0x8 7FFFFFFF )。如果需要用另外6G空间,需要配置MPAX修改复位后的初始状态。请参考sprugw0a C66X corepac的文档。
只要配置地址为0x0800 0008的XMPAX1_L和0x0800 000c的XMPAX1_H
如果访问0x8 80000000 : 0x8 FFFFFFFF ,则令XMPAX1_L=880000BF,XMPAX1_H=0x8000001E即可.
如果访问0x9 00000000 : 0x9 7FFFFFFF ,则令XMPAX1_L=900000BF,XMPAX1_H=0x8000001E即可.
如果访问0x9 80000000 : 0x9 FFFFFFFF ,则令XMPAX1_L=980000BF,XMPAX1_H=0x8000001E即可.
Best Regards
William.dong@enea.com