TI中文支持网
TI专业的中文技术问题搜集分享网站

关于tms320vc5509a的cmd问题,由于代码量比较大,最后生成的.bss,.text,.data,.cinit段均超范围,这些段加起来的总大小已经超过了片内内存,通过网上查找资料,需要外扩sram,我想用的外接的SDRAM存储.text段,在CMD文件中用的是CE0,地址是0x40000,编译通过了,但是在线调试的时候总是弹出不能写入0x40000地址,这是怎么回事啊?

Shine:

请问在GEL文件里是否有对CE0寄存器进行初始化配置?

user5067112:

回复 Shine:

已经初始化了

在c5509.gel中的C5509_Init()里定义了GEL_MapAdd(0x40000,0,0x3C0000,1,1);这个是对CE0的初始化么?

或者我想把.bss段放到片外sdram,应该怎么修改cmd啊?

user5067112:

回复 Shine:

在c5509.gel中有
hotmenu CE0_Async16_En()
{
GEL_MemoryFill(0x0803,2,1,0x1FFF);
}
这个是对CE0寄存器的初始化么?我用的是CCS5.3自带的.gel文件,没有修改过

Shine:

回复 user5067112:

这个不是配CE0寄存器,看一下DSK5509.gel文件里的C5509_EVM_EMIF_Init(),下载下面网站上的Target Content v1,里面有GEL文件。
c5000.spectrumdigital.com/…/

user5067112:

回复 Shine:

我把这个.gel文件替换了我工程里的文件,打开了C5509_EVM_EMIF_Init()的注释,并打开了C5509_EVM_EMIF_Init()里关于EMIF_CE0_1,EMIF_CE0_2,EMIF_CE0_3的注释,编译是没有问题。CE0连接的是SDRAM,但是编译出的.bss段超过了64k也是会报烧写不进去的错误。我将这个.bss段通过关键字#pragma分成两个小于64k的段也是同样的错误。只要是总和超过64k就会报错,报的错误跟标题上的图片一样,"trouble writing memory block at 0x2f5c6 on page 1 of length 0x4…"

Shine:

回复 user5067112:

这个报错信息是在load .out文件时出现的吗?

user5067112:

回复 Shine:

感觉好像gel中配置的CE0还是没有起作用,在线调试后debug页面中的resume绿色按键是灰的,不能鼠标点击,就像是程序没有运行一样。如果我先在线调试sdram的读写程序,再在线调试这个程序,就可以正常运行。感觉像是之前的sdram程序把CE0给打通了,然后后面的程序就起作用了

user5067112:

回复 Shine:

那个报错的是CE0的某个地址不能写入,我改成其他地方这个错误就没有了

Shine:

回复 user5067112:

gel文件是在target configuration file里面设置的,在点击connect的时候会自动执行的,你可以一下console有没有GEL文件执行时的打印信息。
另外DSK5509.gel是针对DSK开发板的,CE0寄存器配置要根据您外接的SDRAM芯片做修改.

user5067112:

回复 Shine:

按照您的指导,现在是在线调试可以了,是因为target configuration加载的.gel文件路径不对,所以没有起作用。

但是我用flashburn程序下载该程序,重新上电后程序怎么不能运行啊?感觉好像还是因为.gel没有加载到.out里面

赞(0)
未经允许不得转载:TI中文支持网 » 关于tms320vc5509a的cmd问题,由于代码量比较大,最后生成的.bss,.text,.data,.cinit段均超范围,这些段加起来的总大小已经超过了片内内存,通过网上查找资料,需要外扩sram,我想用的外接的SDRAM存储.text段,在CMD文件中用的是CE0,地址是0x40000,编译通过了,但是在线调试的时候总是弹出不能写入0x40000地址,这是怎么回事啊?
分享到: 更多 (0)