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.

DDR赋值问题



请问下,下面的程序不能给DDR中的数组srcbuf赋值?
这是为什么?请高手指点下?谢谢,


#pragma DATA_SECTION(srcbuf, ".EXRAM")
unsigend char srcbuf[512];

void main()
{
 int i ;
        for(i=0; i<512; i++)
  srcuf[i]= 0xFF;
}

cmd文件:

-c
-heap 0x2000
-stack 0x2000
MEMORY
{
 VECTORS: o=0x10800000 l=0x00000400
 LL2MEM:  o=0x10800400 l=0x00007FC0
 MSMCRAM: o=0x0C800000 l=0x00400000
 DDR3RAM: o=0x80000000 l=0x20000000
}
SECTIONS
{
 .csl_vect > VECTORS
 .text > LL2MEM
 .data > LL2MEM
 .fasttext > LL2MEM
 .cinit > LL2MEM
 .boss > LL2MEM
 .const > LL2MEM
 .far > LL2MEM
 .switch > LL2MEM
 .sysmem > LL2MEM
 .cio > LL2MEM
 .heap > LL2MEM
 .fardata > LL2MEM
 .neardata > LL2MEM
 .rodata > LL2MEM
 .MSRAM > MSMCRAM
 .EXRAM> DDR3RAM
 
}

  • srcuf[i]= 0xFF;  这数组 是不是搞错了啊?

  • 是evm板吗?加gel文件给ddr初始化了没有?

  • 数组是弄错了,改正之后,还是不行。没有加GEL,没有加初始化,以前都可以直接在EVM板上运行的,不知道这是怎么回事?另外在 simulator下,可以看到0x80000000,地址有数据,而在仿真下,就看不到,数据都是0,GEL文件在哪里加的? 这个CCS5连个tutorial都没有,自己弄起来,都是瞎摸,真晕!

  • GEL文件在 "CCS_INSTALL_ROOT\ccsv5\ccs_base\emulation\boards 下“ 找到。添加方法:工程里.cxxml 点开,选择Target Configuration,选中你要调试的core ,e.g. c66xx_0  ,在右边的initialization scipt 里选择你的gel文件就ok。另外注意evm板调成no-boot 模式,即拨码开关对应 SW3~SW6 1000  0000  0000  1100 (0 对应on  1对应off,主要是SW3要拨对)。这样在debug launch的时候会发现console里打出gel文件输出的初始化信息,同时ddr也被初始化了。当然也有方法在程序跑到入口函数后再添加gel文件,这个都是后话,需要你自己摸索了。