Hi,experts:
硬件:66ak2h12
软件:CCS6.0
从SPRS866E文档的P94 Table 6-1截图如下:
DDR3A_REMAP_EN为1。
从上截图,可以看出ARM访问0x8000 0000-0xffffffff地址空间时,对应访问的是DDR3A,DSP访问0x8000 0000-0xffffffff地址空间时,对应访问的是DDR3B,SOC(比如EDMA)访问0x8000 0000-0xffffffff地址空间时,对应访问的是DDR3A。
基于上面的描述,我有个疑惑,EDMA无法访问DSP对应的地址空间0x8000 0000-0xffffffff(DDR3B),因为EDMA访问0x8000 0000-0xffffffff地址空间时,对应访问的是DDR3A,那我怎么在DSP中使用EDMA,莫非只能通过访问ox6000 0000-0x7ffff ffff的地址空间来访问DSP的地址空间?
Best Regards
Gavin
Andy Yin1:
对于EDMA而言只能访问到DDR3B的前面512MB空间,更宽的空间只能通过DDR3A来访问。
atower geng:
回复 Andy Yin1:
Hi, Andy
谢谢你的回复。
前提条件:硬件设计,DDR3A_REMAP_EN=1,为了兼容以前C6678的程序,DSP访问DDR的地址空间为0x8000 0000-0xFFFF FFFF,所以ARM访问DDR3A,DSP访问DDR3B。
据你你述, “对于EDMA而言只能访问到DDR3B的前面512MB空间”,是不是可以这么理解,假如EDMA需要访问DSP对应的DDR地址空间,是不是只能访问0x6000 0000-0x7ffff ffff这段地址空间。
Best Regards
Gavin
Andy Yin1:
回复 atower geng:
注意数据手册中给出的都是物理地址,如果你这里列出的DDR空间0x8000 0000-0xFFFF FFFF是物理地址的话,对应的则是DDR3B的memory,此时SoC只能通过物理地址0x60000000~0x7FFFFFFF进行访问DDR3B前面的512MB空间。
K2H12上有两个DDR3控制器,你现在哪个上面接了SDRAM,如果为了兼容6678的话,应该只需要用DDR3A,此时配置XMC及SEX的MPAX将逻辑地址0x8000 0000开始的区间映射到0x0 8000 0000开始的物理地址区间,这样的话SoC可以通过逻辑地址0x8000 0000访问到0x0 8000 0000 开始的DDR3A物理空间。
K2上逻辑地址与物理地址的映射请参考http://www.deyisupport.com/question_answer/dsp_arm/c6000_multicore/f/53/t/70726.aspx