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.

Compiler/TMS320F28377S: Error in CLA

Part Number: TMS320F28377S
Other Parts Discussed in Thread: C2000WARE

Tool/software: TI C/C++ Compiler

Dear All

I am getting this error when I try to use the "cla_divide"  example from C2000 ( C2000Ware_2_01_00_00)in my project. 

CCS version is 8.3.0.00009. 

I also add F2837xRevB_c1bootROM_BootROMSymbols_fpu32 in project and other file given in example.

/*******************************************************************************************************************************************************************/

undefined first referenced
symbol in file
-------------------------
_Cla1funcsLoadSize ./Source/Supporting_C_files/cla_divide_cpu01.obj
_Cla1funcsLoadStart ./Source/Supporting_C_files/cla_divide_cpu01.obj
_Cla1funcsRunStart ./Source/Supporting_C_files/cla_divide_cpu01.obj

error #10234-D: unresolved symbols remain

/******************************************************************************************************************************************************************/

Problem is in this function. When I remove "extern" form "extern uint32_t Cla1funcsRunStart, Cla1funcsLoadStart, Cla1funcsLoadSize" error removed but code stop working. I think this is due to some messing file or setting in my project. I also try to search in the example project but not able to find it. So please help to solve this.

void CLA_configClaMemory(void)

{
extern uint32_t Cla1funcsRunStart, Cla1funcsLoadStart, Cla1funcsLoadSize;
EALLOW;

#ifdef _FLASH
//
// Copy over code from FLASH to RAM
//
memcpy((uint32_t *)&Cla1funcsRunStart, (uint32_t *)&Cla1funcsLoadStart,
(uint32_t)&Cla1funcsLoadSize);
#endif //_FLASH

/*******************************************************************************************************************************************************************/

  • Hi,

    The variables Cla1funcsRunStart, Cla1funcsLoadStart, Cla1funcsLoadSize comes from the linker command file. Have you included the correct linker command file?

    Please refer to the following linker command file:

    C:\Work\Git\c2000ware-release\device_support\f2837xs\common\cmd\2837xS_FLASH_CLA_lnk_cpu1.cmd

    Regards,

    Veena

  • Thank for replay,

    Please tell I have to add this file in to my project or I have to replace it with my my CMD file??. I tried both of these but it not work.

  • Hi Sam,

    Please replace with this linker command file. Are you still getting the same error after using this cmd file?

    Regards,

    Veena

  • As you suggest, I replace "2837xS_Generic_FLASH_lnk.cmd"  with "2837xS_FLASH_CLA_lnk_cpu1.cmd". But I getting following error.

  • Hi Sam,

    Looks like you are not receiving the undefined symbols error and I believe this is a error related to not able to the fit the sections to the assigned memory blocks.

    This usually happens if the actual section is larger than the assigned memory block. For example, .ebss : > RAMLS0, if ebss size is larger than the size of RAMLS0, you should map larger memory block or combine multiple memory blocks as follows:

    .ebss : >> RAMLS0 | RAMLS1

    You need to check which section caused that error and update the linker command file accordingly.

    Regards,

    Veena

  • I try as you suggest but I am getting this error.

     -----------------------------------------------------------------line 116-----------------------------------------------------------

    "../cmd/2837xS_FLASH_CLA_lnk_cpu1.cmd", line 116: warning #10097: memory range

    not found: RAMLS0 on page 1
    "../cmd/2837xS_FLASH_CLA_lnk_cpu1.cmd", line 116: warning #10097: memory range
    not found: RAMLS1 on page 1
    "../cmd/2837xS_FLASH_CLA_lnk_cpu1.cmd", line 116: error #10099-D: program will
    not fit into available memory. run placement with alignment/blocking fails
    for section ".ebss" size 0x16a7 page 1. Available memory ranges:
    RAMLS2 size: 0x800 unused: 0x800 max hole: 0x800
    RAMLS3 size: 0x800 unused: 0x800 max hole: 0x800

    ../cmd/2837xS_FLASH_CLA_lnk_cpu1.cmd", line 141: warning #10097: memory range

    not found: RAMLS4_5 on page 0
    "../cmd/2837xS_FLASH_CLA_lnk_cpu1.cmd", line 140: error #10265: no valid memory
    range(null) available for placement of "Cla1Prog"
    "../cmd/2837xS_FLASH_CLA_lnk_cpu1.cmd", line 140: error #10099-D: program will
    not fit into available memory. run placement with alignment/blocking fails
    for section "Cla1Prog" size 0x54 page 0

    line 116

    And this is the line where I am getting error.

     .ebss               : > RAMLS0 | RAMLS1 | RAMLS2 | RAMLS3 PAGE = 1, ALIGN(8)

     line 141

    #else

    Cla1Prog : LOAD = FLASHD,
    RUN = RAMLS4_5,
    LOAD_START(_Cla1funcsLoadStart),
    LOAD_END(_Cla1funcsLoadEnd),
    RUN_START(_Cla1funcsRunStart),
    LOAD_SIZE(_Cla1funcsLoadSize),
    PAGE = 0, ALIGN(8)

  • Hi Sam,

    From the other thread you created, I believe this issue has been resolved. Closing this thread.

    Regards,

    Veena