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.

DSP/BIOS工程遇到#10099-D: program will not fit into available该如何解决?

硬件:EVM5515

开发环境:CCSV6.0

系统:DSP/BIOS

问题,增加用户文件后,编译出现#10099-D: program will not fit into available。

节选如下:

增加的文件是TI提供的CSL_I2S_IdleLoop_Out例程中的codec_aic3254.c和codec_aic3254.h及sample_rate.h。

从上图信息可知,是DARAM空间不足。但是增加的文件里并没有大数组。为增加前,也没有大数组。

当前工程使用了DSP/BIOS,配置CMD用的是.tcf文件。

该问题应该怎么解决?

  • 先试试下面wik网站的方法。
    processors.wiki.ti.com/.../10099

    如果不行的话,再去看.map文件看有哪些大段导致memory放不下,在对memory进行调整。
  • 增加的段主要有:

    00001f50          *   C55XXCSL_LP.lib : csl_dma.obj (.text)

    00000e8f          *   C55XXCSL_LP.lib : csl_i2c.obj (.text)

    00000997          *                   : csl_i2s.obj (.text)

    00000926          *   codec_aic3254.obj (.text)

    即C55XXCSL_LP.lib库文件的DMA、I2C、I2S模块驱动,以及codec_aic3254.c文件的驱动。

    由于编译可执行代码放在.text段,而.tcf配置文件生成的.cmd文件中.text映射到DARAM存储段,所以,增加程序功能势必增加DARAM的消耗。

    DARAM的空间只有0xfe40字节,即63k左右。很快就消耗完。而SARAM有0x40000字节,即256k。

    能否通过.tcf配置或者其他方法,将.text段映射到SARAM上?

  • 可以用#pragma CODE_SECTION (symbol , " section name " )伪指令自定义段,然后在cmd文件中把自定义段分配到段中。具体可以看compiler手册5.9.4 The CODE_SECTION Pragma。
    www.ti.com/.../spru281g.pdf
  • 谢谢解答!

    我已经找到了在.tcf 文件中的设置选项。

    把如下图的.text段默认的设置DARAM改为SARAM即可解决问题。这样,编译生成的可执行代码就映射到SARAM上了。

    如果愿意,甚至可以映射到片外的SDRAM上。

    不得不说,这是.tcf 的一个坑。

    也怪我不熟悉.tcf 文件的使用方法。请问有没有.tcf 文件的使用手册,或者相关的说明文件?

  • 有tcf文档。
    Chapter 6 The DSP/BIOS Configuration Tool
    www.ti.com/.../spru007i.pdf