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.

program will not fit into available memory

Other Parts Discussed in Thread: CONTROLSUITE

I want to have the functionality of some of controlSUITE's examples in a C++ program, so I created a simple main.cpp file that created a class for blinky and enet_uip.  I renamed the main functions from those programs and called them from the classes in main.cpp.  I am now getting the following error:

error #10099-D: placement

   fails for object ".text", size 0x4d32 (page 0).  Available ranges:

   C0           size: 0x2000       unused: 0x2000       max hole: 0x2000  

I am surprised that I am having problems with memory just using code from two of the simple examples.  Does enet_uip really require that much memory?  I followed suggestions in the error message: Increasing the optimization level had no affect.  It suggests the "printf_support=minimal" option, but I did not know where or how to set that.  I went in to the linker cmd file and tried expanding C0 and diminishing C1, but then I got an error on C1.

Have I really hit the limit on Concerto already, or is there a simple configuration item that will take care of this problem?

I am using a recent version of controlSUITE and CCS version 5.1.0.09000.  I am using the controlCARD TMDXCNCDH52C1 with the XDS100v2 emulator.

  • Don,

    The ethernet example is a little bigger, but will certainly fit into the device when combined with the blinky example.  The problem you are having is because you are using a linker file which is placing .text into RAM.  Try using one of the flash linker command files instead, which should resolve this problem.

    Regards,

    Trey

  • How do I change to a flash linker command file?  I tried deleting the RAM .cmd file from my project then adding F28M35x_generic_C28_FLASH.cmd under Build Options | TMS470 Linker | File Search Path.  The result was

     

    'Building target: Custom1.out'

    'Invoking: TMS470 Linker'

    "C:/TI/ccsv5/tools/compiler/tms470/bin/cl470" -mv7M3 -g --gcc --define=ccs --define=printf_support=minimal --diag_warning=225 --display_error_number -me --gen_func_subsections=on --abi=eabi --code_state=16 --ual -z -m"Custom1.map" --stack_size=256 --heap_size=0 --warn_sections -i"C:/TI/ccsv5/tools/compiler/tms470/lib" -i"C:/TI/ccsv5/tools/compiler/tms470/include" --reread_libs --rom_model -o "Custom1.out"  "./ustdlib.obj" "./uip_timer.obj" "./uip_arp.obj" "./uip.obj" "./uartstdio.obj" "./startup_ccs.obj" "./main.obj" "./httpd.obj" "./enet_uip.obj" "./dhcpc.obj" "./blinkyM3.obj" "./M3Base.obj" -l"C:\TI\controlSUITE\device_support\f28m35x\v110\F28M35x_common\cmd\F28M35x_generic_C28_FLASH.cmd" -l"rtsv7M3_T_le_eabi.lib" "C:/TI/MWare/driverlib/ccs/Debug/driverlib.lib"

    <Linking>

    warning #10247-D: creating output section ".bss" without a SECTIONS

       specification

    warning #10247-D: creating output section ".const" without a SECTIONS

       specification

    warning #10247-D: creating output section ".data" without a SECTIONS

       specification

    warning #10247-D: creating output section ".intvecs" without a SECTIONS

       specification

    warning #10247-D: creating output section ".resetisr" without a SECTIONS

       specification

    warning #10247-D: creating output section ".vtable" without a SECTIONS

       specification

    "C:\TI\controlSUITE\device_support\f28m35x\v110\F28M35x_common\cmd\F28M35x_generic_C28_FLASH.cmd", line 98: error #10099-D:

       placement fails for object ".text", size 0x4d32 (page 0).  Available ranges:

       FLASHA       size: 0x1f80       unused: 0x1f80       max hole: 0x1f80   

    warning #10229-D: output section ".intvecs" refers to load symbol "__STACK_TOP"

    >> Compilation failure

       and hence cannot be compressed; compression "rle" is ignored

    undefined   first referenced

      symbol         in file     

    ---------   ----------------

    __STACK_TOP ./startup_ccs.obj

    error #10234-D: unresolved symbols remain

    error #10010: errors encountered during linking; "Custom1.out" not built

  • The project you are compiling is a M3 project, but you are using the C28 linker command file.  Try using F28M35x_generic_M3_FLASH.cmd instead.


    Trey

  • Trey German replied to Re:
    program will not fit into available memory
    in C2000 32-bit Microcontroller

    Forum.

    The project you are compiling is a M3 project, but you are using the C28
    linker command file.  Try using F28M35x_generic_M3_FLASH.cmd
    instead.

    So I was changing the file the correct way, just not using the correct file.  Once I found the F28M35x_generic_M3_FLASH file and added it under Build Options | TMS470 Linker | File Search Path, my program built OK.  Interesting that there are different linker command files under CCSV, ControlSUITE, and MWare folders. 

  • Don,

    You are correct.  We associate the linker command file with a project through the Linker File Search Path.  This allows our example project to have both Flash and RAM build configurations.

    I understand you are probably confused by the linker command files that are in different places.  As far as Concerto goes, the M3 linker command files are in MWare/cmd while the C28 linker files are in F28M35x_common/cmd.  We recommend you use the linker files in ControlSUITE as these are updated more frequently than those in CCS.

    Trey