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.

TMS320C6678: 【TMDXEVM667LE】使用memset函数对DDR空间写入数据

Part Number: TMS320C6678

使用的是STK例程,在初始化之后,get_dsp_number函数前加入下面四行程序进行测试。

memset((void*)0x80000000,0,0x10000000);
memset((void*)0x90000000,0xA5,0x10000000);
*((int *)0xc0000000)=0xAAAA5555;

*((int *)0x80000000)=0x5555AAAA;

使用如上代码对DDR空间进行写数

执行完memset((void*)0x80000000,0,0x10000000)后,0x80000000 0xa0000000 0xc0000000 0xe0000000空间上均被写0

执行完memset((void*)0x90000000,0xA5,0x10000000)后,0x90000000 0xb0000000 0xe0000000 0xf0000000空间上均被写0xA5

但是对0xc0000000上写入0xAAAA5555发现在DDR空间上仅该地址写入该值,而对0x80000000写入0x5555AAAA也同样只有0x80000000地址上写入0x5555AAAA

结论 对DDR空间进行连续写操作会改变其他DDR空间上的值 请问为什么会出现这种情况?

  • 随后又使用hyperlink的stk例程进行测试,发现无论是memcpy还是edma测试均出现这样的现象即在0x88300000 0xa83000000 0xc8300000 0xe8300000空间上看到同样的数据0x48300000

  • 请问是在哪个例程上添加的,添加在哪个地方?请详细再说明一下。

  • Hyperlink例程 

  • 随后又使用hyperlink的stk例程进行测试,发现无论是memcpy还是edma测试均出现这样的现象即在0x88300000 0xa83000000 0xc8300000 0xe8300000空间上看到同样的数据0x48300000

    随后我跑了hyperlink例程 发现了上面所述的情况

  • memory test例程测试过吗?是否有问题?

  • memory test测试过 同样的问题 往0x80000000空间写数据 在0xa0000000 0xc0000000 0xe0000000 空间上均可以看到被写入同样的数据

  • 您好 请问上边这个问题你清楚怎么解决吗?

  • 抱歉回复晚了,暂时不清楚什么原因导致的,memory test例程您也是在修改之后测试的吗?如果是的话,请贴出具体修改的部分,我需要在开发板上测试看看。

  • memory test没有修改过

    难道是因为TMDXEVM6678LE只外挂了512M的ddr 所以导致在ccs memory上查看的时候会出现以512M为间隔的数据重复?

  • 该板子上不是只外挂了512M.

    The TMS20C6678 DDR3 interface connects to four 2Gbit (128Mega x 16) DDR3 1333 devices on Rev 3.0 EVM and 1Gbit (64Mega X 16) DDR3 devices on all EVMs through Rev 2.0A.

    我测试下来是0x80000000和0xc0000000会重复。

    我转给其它工程师看一下。

  • 我这边的板子型号是TMDXEVM6678LE REV1.0

    DDR外挂的好像就是512M

  • 难道是因为TMDXEVM6678LE只外挂了512M的ddr 所以导致在ccs memory上查看的时候会出现以512M为间隔的数据重复

    如果你的板子上是512MByte DDR,那么显示或者访问就会如你说的以512MBtyte为间隔进行重复。

    因为这时比512MByte大的高位地址的译码结果只是用来参生CS有效信号,并不是用来寻址地址单无的。所以就如你看到的0x80000000空间写数据 在0xa0000000 0xc0000000 0xe0000000看到的是一样的。本身它们在物理上也是同一个物理地址。

    如果没理解,再细想一下,高位地址的译码过程及作用。