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.

TMS320F28384S: Issue about coping code of a RTS library object module to RAM

Part Number: TMS320F28384S


Hello,
I am developing an application on the C28 core, that must execute from RAM.

I have modified the linker command file to copy the input .text sections of the object modules in the .TI.ramfunc output section.

I have no problem with my custom modules nor with the driverlib ones.

I get an error, instead, with the fs_div28.asm module of the RTS library, to execute the  __c28xabi_divf() function from RAM.

This is how I have modified the linker command file:

.TI.ramfunc :
{
   ...
   -l rts2800_fpu64_eabi.lib<fs_div28.asm.obj>(.text)
} LOAD = FLASH,
  RUN = RAMGS
  LOAD_START(RamfuncsLoadStart),
  LOAD_SIZE(RamfuncsLoadSize),
  LOAD_END(RamfuncsLoadEnd),
  RUN_START(RamfuncsRunStart),
  RUN_SIZE(RamfuncsRunSize),
  RUN_END(RamfuncsRunEnd),
  ALIGN(4)

In this case, I get the following error: 

error #16041-D: File "C:/ti/ccs1210/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/lib/rts2800_fpu64_eabi.lib<s_ceil.c.obj>" passes/returns double types in FPU64 registers while previous files pass them in {3}.

What am I doing wrong?

Thank you,
Carlo

 

  • Hello Carlo,

    In this case, I get the following error: 

    error #16041-D: File "C:/ti/ccs1210/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/lib/rts2800_fpu64_eabi.lib<s_ceil.c.obj>" passes/returns double types in FPU64 registers while previous files pass them in {3}.

    This error indicates that either your project or a library which is used within the project has a FPU configuration that is inconsistent with what you're intending. If your project has the correct FPU configuration, please check that all included libraries are built for this same configuration.