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.

c6424 DDR程序



我的ddr不能跑程序,但是用官方开发板自带的test程序能跑通。 也就是说可以用作数据空间,但是不能用作程序空间。

这个问题应该怎么解决呢?请求帮忙,谢谢!

  • "不能跑程序"是指程序load不进DDR还是跑出来结果不对?

  • 我这么问吧 ,在官方开发板自带的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

    }

  • 在GEL文件中对DDR先进行初始化设置, 然后CCS才能load程序到DDR. 可以参考下面evm6424的GEL文件中setup_ddr gel函数

    c6000.spectrumdigital.com/.../reva

  • 你说的这个是在仿真状态,这个我知道。

    我是想在实际中应用,脱离了CCS,就在板子上跑程序。例如:我把程序先放在FLASH中,上电之后我把它搬移到DDR中运行。

    需要设置CACHE吗?