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.

TMS320F280049C: Error while adding the RAM and Flash code functions

Part Number: TMS320F280049C
Other Parts Discussed in Thread: C2000WARE

Hello Team,

Good Day!

I have created complete new project for TMS320F280049C DSP processor. I have added all the lib and device support files .c, .h, .cmd as well. 

Most of the times I have faced the issue of linking RAM and FLASH files.

Refer below snap shot and suggest me what can be the reason for this error.

Regards,

Dnyanesh

  • Hi,

    Are you using the .cmd files from C2000ware? The symbols RamFuncsSize/Load/Start comes from the cmd files

    #if defined(__TI_EABI__)
       .TI.ramfunc      : LOAD = FLASH_BANK0_SEC1,
                          RUN = RAMLS4
                          LOAD_START(RamfuncsLoadStart),
                          LOAD_SIZE(RamfuncsLoadSize),
                          LOAD_END(RamfuncsLoadEnd),
                          RUN_START(RamfuncsRunStart),
                          RUN_SIZE(RamfuncsRunSize),
                          RUN_END(RamfuncsRunEnd),
                          PAGE = 0, ALIGN(4)
    #else
       .TI.ramfunc      : LOAD = FLASH_BANK0_SEC1,
                          RUN = RAMLS4
                          LOAD_START(_RamfuncsLoadStart),
                          LOAD_SIZE(_RamfuncsLoadSize),
                          LOAD_END(_RamfuncsLoadEnd),
                          RUN_START(_RamfuncsRunStart),
                          RUN_SIZE(_RamfuncsRunSize),
                          RUN_END(_RamfuncsRunEnd),
                          PAGE = 0, ALIGN(4)
    #endif
    

    Can you check if this is present in the cmd file?

    Reagrds,

    Veena

  • Hi Veena,

    Thanks for your inputs. 

    Yes, I am using the .cmd files from the C2000ware only. I have copied all the required files from the C2000ware.

    Below are the details are available in the "28004x_generic_ram_lnk.cmd". Please correct me if I am not using the correct files.

    I could not found "280049C_RAM_lnk.cmd" file under the C2000ware for the TMS32F280049 series. Let me know if your shared details if can replace in "28004x_generic_ram_lnk.cmd" file.

    #if defined(__TI_EABI__)
    .bss : > RAMLS5, PAGE = 1
    .bss:output : > RAMLS5, PAGE = 1
    .init_array : > RAMM0, PAGE = 0
    .const : > RAMLS5, PAGE = 1
    .data : > RAMLS5, PAGE = 1
    .sysmem : > RAMLS5, PAGE = 1
    .bss:cio : > RAMLS0, PAGE = 0
    #else
    .pinit : > RAMM0, PAGE = 0
    .ebss : > RAMLS5, PAGE = 1
    .econst : > RAMLS5, PAGE = 1
    .esysmem : > RAMLS5, PAGE = 1
    .cio : > RAMLS0, PAGE = 0

    Regards,

    Dnyanesh

  • We use ramfuncs for loading the code to Flash and run from RAM. If you are using RAM linker command file, all the section will be loaded in the RAM. The symbols RamFuncsSize/Load/Start are used to copy the contents form Flash to RAM at run time.

    If you are using RAM linker cmd file, all the sections will be loaded in the RAM. In that case, you do not need to the Flash-to-RAM copy. The device.c file does this copy only in case _FLASH is defined in the CCS project. Can you check if you have this added in the predefined symbols?

    Regards,

    Veena

  • Yes Veena,

    I have added _FLASH and if is working. These resolve the issue.

    Regards,

    Dnyanesh