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.

TMS320F280025C: error #10010: errors encountered during linking;

Part Number: TMS320F280025C
Other Parts Discussed in Thread: C2000WARE

Hello everyone, 

I'm trying to build my first project, so this is probably a dull question.

Yet yesterday I was trying to control a servo motor and it worked fine, today I tried to rebuild my program and I got this warning:

warning #10210-D: creating ".sysmem" section with default size of 0x400; use the -heap option to change the default size

"C:/ti/c2000/C2000Ware_4_01_00_00/device_support/f28002x/common/cmd/28002x_generic_ram_lnk.cmd", line 64: error #10099-D: program will not fit into available memory, or the section contains a call site that requires a trampoline that can't be generated for this section. run placement with alignment/blocking fails for section ".sysmem" size 0x400page 0. Available memory ranges:
RAMLS4567 size: 0x2000 unused: 0x12d max hole: 0x12c
error #10010: errors encountered during linking; "F28002x_Project.out" not built

>> Compilation failure
makefile:144: recipe for target 'F28002x_Project.out' failed
gmake[1]: *** [F28002x_Project.out] Error 1
makefile:140: recipe for target 'all' failed
gmake: *** [all] Error 2

Does anyone have any idea how to fix it?

P.S: The file is already linked in project properties -> Build -> C2000 Linker -> File search Path -> C:\ti\c2000\C2000Ware_4_01_00_00\device_support\f28002x\common\cmd\28002x_generic_ram_lnk.cmd

Thank you,

  • Hi,

    As mentioned in the error message, linker is trying to fit the sysmem section of length 0x400  in the LSRAM which only has 0x12d unused memory left.

    Please reallocate that to a different RAM block

    Regards,

    Veena

  • Hi,

    Thank you for your answer. I tried it and then I found out that the problem is that the program is loaded in ROM and to solve it, I should load my program in Flash memory.

    Do you have any idea how to do this?

    Regards,

    Abdel Karim

  • P.S: I also tried to link "28002x_generic_flash_lnk" instead of "28002x_generic_ram_lnk" to solve the problem. However, the program is built without errors but it still does not work.

  • Does your application use 0x400 bytes of heap memory? If not, you could reduce it reduce the section size.

    If you have spare memory left in GSRAM, you can try allocating sysmem to GSRAM memory 

    .sysmem :> RAMGS0

    Note that the cmd files provided in C2000ware are for reference only, please update it as per the application requirement

    Regards,

    Veena

  • Thank you 

    Problem solved by linking  "28002x_generic_flash_lnk". 

    Combining the FLASH BANKS from  BANK0 to BANK15 by updating the cmd file provided in C2000ware as suggested :

    // FLASH_BANK0_SEC2 : origin = 0x082000, length = 0x001000 /* on-chip Flash */
    // FLASH_BANK0_SEC3 : origin = 0x083000, length = 0x001000 /* on-chip Flash */
    // FLASH_BANK0_SEC4 : origin = 0x084000, length = 0x001000 /* on-chip Flash */
    // FLASH_BANK0_SEC5 : origin = 0x085000, length = 0x001000 /* on-chip Flash */
    // FLASH_BANK0_SEC6 : origin = 0x086000, length = 0x001000 /* on-chip Flash */
    // FLASH_BANK0_SEC7 : origin = 0x087000, length = 0x001000 /* on-chip Flash */
    // FLASH_BANK0_SEC8 : origin = 0x088000, length = 0x001000 /* on-chip Flash */
    // FLASH_BANK0_SEC9 : origin = 0x089000, length = 0x001000 /* on-chip Flash */
    // FLASH_BANK0_SEC10 : origin = 0x08A000, length = 0x001000 /* on-chip Flash */
    // FLASH_BANK0_SEC11 : origin = 0x08B000, length = 0x001000 /* on-chip Flash */
    // FLASH_BANK0_SEC12 : origin = 0x08C000, length = 0x001000 /* on-chip Flash */
    // FLASH_BANK0_SEC13 : origin = 0x08D000, length = 0x001000 /* on-chip Flash */
    // FLASH_BANK0_SEC14 : origin = 0x08E000, length = 0x001000 /* on-chip Flash */
    // FLASH_BANK0_SEC15 : origin = 0x08F000, length = 0x000FF0 /* on-chip Flash */

    FLASH_BANK0_SEC2To15 : origin = 0x082000, length = 0xDFF0 /* combining the flashbank 0 to 15 

    Then I've added :

    #include <flash.h> // added to  main.c

    memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (uint32_t)&RamfuncsLoadSize); // added to main.c