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.

TMS320F28388D: The global variable initialization being skipped

Part Number: TMS320F28388D

Hi Experts,

My customer finds that the static variable in their app is not initilized after a firmware upgrade.

The static variable initilization should be in the cint00. Customer would reset the device after flashing the new app, the device would run bootloader then bracnh to the entry point of the app, then it executes cint00 and then main.

the cint00 should be executed in this process, however, it there any chance the cint00 decides not to initial the static avaraible? Especially in the scenario where the user branchs to app froam bootloader, and each has a cint00.

Since the cint00 is written in assembly, we need your help to understand if this mechanism exists.

Regards,

Hang

  • Hi Hang,

    There are a few things you need to check here.

    1. Confirm that the bootloader jumps to the application's codestart/ reset entry and not directly to main. You said that it executed cint00 and then main, so I will assume that you are already taking care of this point.

    2. Make sure that you are using --rom_model  and not --ram_model in C2000 Compiler -> Runtime Model Options

    3. Make sure that you have defined the .cinit section properly in your Linker Command file

    Can you make sure all these things are in place and let me know?

    Thanks,

    Ira