Part Number:TMS320C6713B
TI工程师您好:
由于我的代码较多,导致内部RAM运行代码空间不够用,如图,编译出来的.text段和.far段过大,所以我想将这两个段放入外部SDRAM中,
这样可以通过编译,代码也可以运行到main处,但是在初始化的时候遇到循环语句就会卡住,而这些代码在内部RAM中运行是正常的,SDRAM的配置已经测试过了,在加载的.gel文件中已经初始化过SDRAM了。
希望工程师能够指点迷津,谢谢!
Nancy Wang:
看一下map文件内存使用情况是否正常。测试过SDRAM的读写吗?
,
such:
map文件如图所示:,测试过SDRAM得读写,我烧录得时候还用它做过临时缓存。
,
Nancy Wang:
再测试一下其它程序看看?是否都会出现这样的情况,看看是不是代码的问题。
,
such:
我屏蔽掉了老是出错的相关函数,目前可以运行简单的点灯程序,但是现在有2个问题,1:运行速度特别慢,我发现在外部SDRAM运行比在内部RAM运行速度慢了5倍左右;2:在外部SDRAM运行时,只要调用标准库相关函数,比如printf()、time() 这种函数,程序就会跑飞,请问这是什么原因呢?
,
Nancy Wang:
such 说:1:运行速度特别慢,我发现在外部SDRAM运行比在内部RAM运行速度慢了5倍左右;
sdram是会比片上memory慢很多。
such 说:在外部SDRAM运行时,只要调用标准库相关函数,比如printf()、time() 这种函数,程序就会跑飞,请问这是什么原因呢?
加大堆栈看看。
,
such:
堆栈已经很大了
,
Nancy Wang:
因为一般调用printf就会占用很多堆栈空间,如果出现这种现象就会考虑是不是堆栈不足导致的。
software-dl.ti.com/…/sdto_cgt_tips_for_using_printf.html