阅读:4641回复:6
关于DSP的超难问题,菜鸟勿进!
硬件平台:CCS2.0 TMS320C6201 板子上我扩展了4M的SDRAM
问题描述:现在我想分配一个大于64K的缓冲区,放在IDRAM是不可能的,因为IDRAM只有64K,所以只能放在4M的SDRAM里面。 在分配内存的时候,先在程序里声明这个缓冲区为.far段,然后在DSP/BIOS里面将.far段定义在SDRAM里面。编译都没有问题,调入程序的时候,发现无法初始化,仔细debug发现停在GBL_init上面了。无法继续,怎么办? 我猜测可能是:DSP/BIOS在GBL_init将缓冲区分配到SDRAM里面,跟在GBL_init后面的是MEM_init,MEM_init是初始化SDRAM的。问题会不会出现在没有初始化SDRAM就无法分配缓冲区呢?先GBL_init后MEM_init是DSP/BIOS写好的,我没办法改。 现在我有个蠢办法:先将缓冲区弄小,先放在IDRAM里面,编译并且运行一次以后,SDRAM就初始化了,这样再将缓冲区大小恢复放到SDRAM,编译调入就可以正常GBL_init并且进入main程序。 那本编译器的说明书实在太厚了,懒得看!痛苦!!!请高手高高手指点迷津,小弟感激不尽。 |
|
沙发#
发布于:2003-07-09 11:34
是不是放在.far段不太合适?
|
|
板凳#
发布于:2003-07-10 13:17
我很想告诉你,可惜你实在让人。。。。。。。。。。。!!!!!
|
|
地板#
发布于:2003-07-10 17:48
吊偶胃口,不是真英雄所为;
知而不言,不是大丈夫风范。 [编辑 - 7/11/03 by lamxu] |
|
地下室#
发布于:2003-08-01 16:11
怪怪的?
SDRAM应该在bootloader中初始化。 你可以先用GEL把SDRAM初始化,然后试你的程序是否能通过。 |
|
5楼#
发布于:2003-08-23 14:51
靠,
来这翻了半天, 终于看见了一个超难问题。 |
|
|
6楼#
发布于:2009-07-20 15:54
现在有人解决这个问题了吗?
我也是刚刚遇到! |
|