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.

TMS320F28379D: Convert ramfuncs: to TI.ramfunc

Part Number: TMS320F28379D
Other Parts Discussed in Thread: SYSBIOS

Tool/software:

Hi, I have an old project where the ramfuncs section looks like as follow, and I want to migrate it usinf TI.ramfunc

SECTIONS
{
   ramfuncs:            LOAD = FLASHB | FLASHC | FLASHD | FLASHE PAGE = 0, ALIGN(8)
                        RUN = RAMGS0123_DMA
                        LOAD_START(_RamfuncsLoadStart)
                        LOAD_SIZE(_RamfuncsLoadSize)
                        RUN_START(_RamfuncsRunStart)
                        {
                          //*(.text:_SCOPE_func1)
                          *(.text:_xdc_runtime_Timestamp_get32__F)
                          //*(.text:_ti_sysbios_family_c28_TimestampProvider_get32__E)
                          *(.text:_ti_sysbios_family_c28_Timer_getExpiredCounts__E)
                          *(.text:_ti_sysbios_family_c28_Hwi_getInterruptFlag__E)
                          //*(.text:_xdc_runtime_Timestamp_SupportProxy_get32__E)
                          *(.text:_ti_sysbios_family_c28_Hwi_switchAndDispatch__I)
                          *(.text:_ti_sysbios_family_c28_Hwi_dispatchCore__I)
                        }
}

This following code is a failed attempt:

SECTIONS
{
 
 
      .TI.ramfunc : {} LOAD = FLASHB | FLASHC | FLASHD | FLASHE,
                             RUN = RAMGS0123_DMA,
                             LOAD_START(_RamfuncsLoadStart),
                             LOAD_SIZE(_RamfuncsLoadSize),
                             LOAD_END(_RamfuncsLoadEnd),
                             RUN_START(_RamfuncsRunStart)
                          {
                            //*(.text:_SCOPE_func1)
                            *(.text:_xdc_runtime_Timestamp_get32__F)
                            //*(.text:_ti_sysbios_family_c28_TimestampProvider_get32__E)
                            *(.text:_ti_sysbios_family_c28_Timer_getExpiredCounts__E)
                            *(.text:_ti_sysbios_family_c28_Hwi_getInterruptFlag__E)
                            //*(.text:_xdc_runtime_Timestamp_SupportProxy_get32__E)
                            *(.text:_ti_sysbios_family_c28_Hwi_switchAndDispatch__I)
                            *(.text:_ti_sysbios_family_c28_Hwi_dispatchCore__I)
                          },                          
                             RUN_SIZE(_RamfuncsRunSize),
                             RUN_END(_RamfuncsRunEnd),
                             PAGE = 0, ALIGN(8)
}

It compile but the code exit (abort). This is happening particulary with the xdc... and ti_sysbios lines are enable.

I have tried to comment all of them and the program run fine.

Also I tried to add the function SCOPE_func1 to RAM using __atribute__((ramfunc)), and that build and run fine:


Any help is welcome Slight smile

  • I forgot to add that if I only have the line *(.text:_SCOPE_func1) uncommented then I get the following warning:
    warning #10068-D: no matching section

    Thats why I tried using __atribute__((ramfunc)). But it would be much better to have every function in the linker file