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.
使用的是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的stk例程进行测试,发现无论是memcpy还是edma测试均出现这样的现象即在0x88300000 0xa83000000 0xc8300000 0xe8300000空间上看到同样的数据0x48300000
随后我跑了hyperlink例程 发现了上面所述的情况
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只外挂了512M的ddr 所以导致在ccs memory上查看的时候会出现以512M为间隔的数据重复
如果你的板子上是512MByte DDR,那么显示或者访问就会如你说的以512MBtyte为间隔进行重复。
因为这时比512MByte大的高位地址的译码结果只是用来参生CS有效信号,并不是用来寻址地址单无的。所以就如你看到的0x80000000空间写数据 在0xa0000000 0xc0000000 0xe0000000看到的是一样的。本身它们在物理上也是同一个物理地址。
如果没理解,再细想一下,高位地址的译码过程及作用。