DSP芯片为6678,DDR3芯片为MT14J128M16,一片6678上用了4片DDR3,一片MT14J128M16内存大小为256MB,则4片总内存为1GB;根据6678数据手册中“2.3 Memory Map Summary ”中介绍使用DSP6678时片外空间(DDR3 EMIF data)逻辑地址为0x80000000~0xFFFFFFFF,总共2GB。
问题:
1、我使用的4片DDR3芯片总内存为1GB,则再使用时逻辑空间地址为0x80000000~0xbFFFFFFF(总大小1GB)?
2、如果我使用的DDR3芯片空间大小刚好为2GB,则在使用6678逻辑空间地址为0x80000000~0xFFFFFFFF时,是默认使用还是需要配置,如果需要配置,怎么配置?
3、如果硬件上6678上没有配DDR3芯片,则0x80000000~0xFFFFFFFF的逻辑空间地址还能不能使用,对应的物理空间在哪?
4、我使用的4片DDR3芯片总内存为1GB,可以使用的逻辑空间地址为0x80000000~0xbFFFFFFF,则为什么我也可以对0xC0000000~0xFFFFFFFF空间进行读写操作?如果可以操作0x80000000~0xbFFFFFFF和0xC0000000~0xFFFFFFFF对应的DDR3芯片实际地址为什么?因为总的DDR3芯片空间只有1GB,0x80000000~0xbFFFFFFF和0xC0000000~0xFFFFFFFF对应的大小都各为1GB,所以两个范围都可以操作时,对应到实际DDR3芯片空间内存是不是重叠了?或者两个空间范围与DDR3芯片空间是怎么对应的?
5、我感觉不管配了多大空间的DDR3芯片(总大小为512MB、1GB或者2GB),在6678上都可以对0x80000000~0xFFFFFFFF的所有空间进行操作,很是疑惑!我的理解是起始地址为0x80000000,然后按照大小往后推算,比如大小为512MB可以使用的空间范围为0x80000000~0x9FFFFFFF,大小为1GB可以使用的空间范围为0x80000000~0xbFFFFFFF,大小为2GB可以使用的空间范围为0x80000000~0xFFFFFFFF;
小弟对这一块很是困惑,还请各位大神解答!
zhiyuc:
没有人给解答一下么?
Shine:
C6678 datasheet上的Table 2-2 Memory Map Summary是复位后的初始状态,默认逻辑地址0x8000_0000~0xFFFF_FFFF映射DDR最下面的2G(0x8 00000000 : 0x8 7FFFFFFF )。如果需要用另外6G空间,需要配置MPAX修改复位后的初始状态。请参考 C66X corepac的文档。http://www.ti.com/lit/ug/sprugw0c/sprugw0c.pdf
zhiyuc:
回复 Shine:
现在DDR3芯片只有1GB内存,此时是怎么映射的?
Shine:
回复 zhiyuc:
默认从0x8 00000000 开始的1GB.