Part Number:TMS320C6748
由于之前设计的一款基于6748的板子没有外挂DDR,现在代码太多了,编译之后的obj文件占的空间很大,我想请问一下能否通过命令把代码段分开存储?谢谢。
Nancy Wang:
可以的。
请参考:
https://software-dl.ti.com/ccs/esd/documents/sdto_cgt_Linker-Command-File-Primer.html#allocate-output-sections-to-memory
,
Zun Niu:
老师您好。我按照教程 用 >> 运算符把我的.text段分在了 L2cache 和RAM shared memory当中。程序编译成功,看map也确实是拆分了,但是我的程序运行时出了问题。同样的程序在我的另一块有DDR的板子上,.text段全部放在DDR2中,运行没有问题。想请教 拆分.text段可能会潜在有什么问题? 如果有,有什么办法能解决吗
,
Nancy Wang:
Zun Niu 说:L2cache 和RAM shared memory
这两个地址分别是什么?没见过直接分到cache上的。
,
Zun Niu:
我这边 SRAM: origin = 0x11800400,len = 0x 3D000
SDRAM :origin = 0x80000000,len = 0x 20000。
.text >> SDRAM | SRAM
以上是我分配的语句。
,
Nancy Wang:
如果map文件中显示分配成功的话,应该没有问题,map文件看一下,另外程序运行是什么问题?
,
Zun Niu:
程序出的错很像内存泄漏导致的(但是同样的程序只要全放在DDR里就没有问题)。跑着跑着 突然某些参数的值变得特别大。我感觉似乎和obj文件的放置位置有关系。好像有的文件不能分开放。
,
Nancy Wang:
试一下指定某些特定obj中的text段存储到某个内存空间看看。把您的cmd和map文件贴出来看一下。
另外也可以试一下开启优化看看是否能缩小, 可以对整个工程优化也可以对单独的c文件进行优化。
右键点击project或者要优化的c文件,在菜单中选择"Properties",在弹出的对话框里有optimization选项。
,
Zun Niu:
老师您好。我这边cmd 和map 文件都在保密机上,没办法拷贝出来。
我也是通过命名一个output section 的方式,把一部分obj 移到了上文所述的SDRAM中,剩下的放在SRAM中,现在的有时程序可以正常运行,有时不可以。我现在怀疑是否是某个obj需要调用另外一个obj的变量,但是两个obj分处不同内存空间,就有可能出错。
优化的话,选择哪个选项比较好一些呢?我尝试把优化从debug 改为 release,但是改了之后我无论怎么修改CMD,都无法把任何段放入到SDRAM 中。
,
Nancy Wang:
右键点击project或者要优化的c文件,在菜单中选择"Properties",在弹出的对话框里有optimization选项。
TI中文支持网


![TMS320F28379D: 导入例程出现故障Description Resource Path Location Type gmake: *** [gridconnectedinvlclfltr.obj] Error 1 gridConnectedInverterLCLFltr C/C++ Problem-TI中文支持网](https://www.ti2k.com/wp-content/uploads/ti2k/DeyiSupport_C2000_pastedimage1752114958744v1.jpg)

