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: warning due to F021_API_F2837xD_FPU32 api

Part Number: TMS320F28379D
Other Parts Discussed in Thread: C2000WARE

Dear TI Hello,

I have a warning due to the  F021_API_F2837xD_FPU32 libraries added to my project.

I am using this library because my code could not be run from flash. the code was running but now with some code modification in another module, my code is staking 0x3fe494 in BROM.

I am trying to integrate this library into my project because I read in a previous post from TI this:

when I added the F021_API_F2837xD_FPU32  to the project I added also this to the cmd file,

GROUP
{
.TI.ramfunc
{
-l F021_API_F2837xD_FPU32.lib
}

} LOAD = BOOTCODE,
RUN = RAMGS7,
LOAD_START(_RamfuncsLoadStart),
LOAD_SIZE(_RamfuncsLoadSize),
LOAD_END(_RamfuncsLoadEnd),
RUN_START(_RamfuncsRunStart),
RUN_SIZE(_RamfuncsRunSize),
RUN_END(_RamfuncsRunEnd),
PAGE = 1

my problem now is I have a warning issue, in the map file I could not see the librarie liked to the project.

The warning says:

Description Resource Path Location Type
#10068-D no matching section saver.cmd
 

Thank you in advance,

S.Tarik

  • Hi Tarik,

    0x3FE494 is the BootROM ITRAP ISR address as per the TRM (section 4.9.2 Wait Points in https://www.ti.com/lit/ug/spruhm8h/spruhm8h.pdf).

    As shown in the flash API example in C2000ware, please ensure that the application calls memcpy() to copy the flash API (and the functions that call flash API) from flash to RAM.

    Please see below FAQs:

    1. [FAQ] FAQ on Flash API usage for C2000 devices: 

         https://e2e.ti.com/support/microcontrollers/c2000/f/171/t/951668 

    2. [FAQ] Flash - How to modify an application from RAM configuration to Flash configuration?: 

         https://e2e.ti.com/support/microcontrollers/c2000/f/171/t/878674 

    Thanks and regards,
    Vamsi

  • Hello Vamsi,

    In the TI code, you are using these routines,

    void InitSysCtrl(void)
    {
        //
        // Disable the watchdog
        //
        DisableDog();
    
    #ifdef _FLASH
        //
        // Copy time critical code and Flash setup code to RAM. This includes the
        // following functions: InitFlash()
        //
        // The  RamfuncsLoadStart, RamfuncsLoadSize, and RamfuncsRunStart
        // symbols are created by the linker. Refer to the device .cmd file.
        //
        memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (size_t)&RamfuncsLoadSize);
    
        //
        // Call Flash Initialization to setup flash waitstates. This function must
        // reside in RAM.
        //
        InitFlash();
    #endif

    Do we have to add anything like F021_API_F2837xD_FPU32   to our project?

    In our code, we are using the same code but still have the issue.

    Regards,

    S.Tarik 

  • Tarik,

    1) What is the address range of the BOOTCODE section in your linker cmd file?

    2) Along with flash API, you need to map the functions that call flash API as well to Ti.ramfunc.  Please check and confirm.

    Thanks and regards,
    Vamsi 

  • In the project I am working i have this in the cmd file:

    BOOT_RESERVED       : origin = 0x01BFFE, length = 0x000002

    StartUpSect         : > BOOT_RESERVED,         PAGE = 1

    I am not sure of this because in the user manual we have this:

    I didn't call any function from that API, should I have it in my project even if there is no call? Does any implicit call to the API exist by the hardware?

  • Hi Tarik,

    Since your application got in to an ITRAP, I was asking what is the "BOOTCODE" memory entry definition in your linker cmd file.  See below snapshot that you shared where you have BOOTCODE for load.

    If your application is not using the flash API library (F021_API_F2837xD_FPU32.lib), you don't need to include that library in your project.  There is no any hidden call to that library unless your application uses it.  

    Thanks and regards,
    Vamsi

  • Hello Vamsi,

    Actually, my application is another bootloader.

    here is the BOOTCODE mapping

    BOOTCODE            : origin = 0x08001C, length = 0x003FE4

  • Hi Tarik,

    Ok.  Since you said you will remove the flash API library from your project, can I consider this as closed?  Or do you have further questions?

    Thanks and regards,

    Vamsi