我的ddr不能跑程序,但是用官方开发板自带的test程序能跑通。 也就是说可以用作数据空间,但是不能用作程序空间。
这个问题应该怎么解决呢?请求帮忙,谢谢!
Shine:
"不能跑程序"是指程序load不进DDR还是跑出来结果不对?
NanShan:
我这么问吧 ,在官方开发板自带的DDR的test程序能跑通地情况下,怎样正确使用DDR作为程序空间,需要哪些配置?
之前程序小,就直接放在DSP的RAM中运行,程序都可以正常运行。后来程序大了,放不下了,我就想把它放在DDR中,我就在CMD文件中把对应的段定义在了DDR上,这样运行的结果是不对的。经过分析我觉得问题是应该先对DDR初始化,然后再放程序,我就想知道应该怎样做?CMD文件如下配置;
-o Debug\flash.out
-m Debug\flash.map
-l rts64plus.lib
-stack 0x00000800 /* Stack Size */
-heap 0x00000800 /* Heap Size */
MEMORY
{
INT: o = 0x10800000 l = 0x0000FFFF
L2RAM: o = 0x10810000 l = 0x00020000
DDR2: o = 0x80000000 l = 0x10000000
}
SECTIONS
{
.vectors > INT
.bss > DDR2
.cinit > L2RAM
.cio > L2RAM
.const > DDR2
.data > DDR2
.far > DDR2
.stack > DDR2
.switch > DDR2
.sysmem > L2RAM
.text > DDR2
.ddr2 > DDR2
}
NanShan:
你说的这个是在仿真状态,这个我知道。
我是想在实际中应用,脱离了CCS,就在板子上跑程序。例如:我把程序先放在FLASH中,上电之后我把它搬移到DDR中运行。
需要设置CACHE吗?