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.

TMS320F280039C: device bootup time and c_int00 execution time

Part Number: TMS320F280039C


Tool/software:

Hi Champ,

I am asking for my customer.

They have a strong requirement to reduce start-up time (Upon power-on reaching to the first line in main()).

From the understanding, the specified bootup time of the F28003x device will be around 1.2ms upon release of reset. It merely includes the internal boot time that every device has to go through to initialize the device. It doesn't include c_int00 execution time, right ?

Then, is there any way / tips on shortening the execution time of c_int00 function ? Could experts provide some good suggestion ? 

Thanks and regards,

Johnny

  • Hello Johnny,

    Yes, the 1.2 ms is records the Boot ROM execution time to first instruction fetch in flash. This does not include c_int00 execution because it is variable depending on the application complexity and amount of memory in use.

    You can set variables you don't want the compiler to initialize as NOINIT, for example in the following way in the linker command file:

    .bss: > RAMLS7, TYPE = NOINIT

    You can also initialize variables at load time with the "--ram_model" linker option, enhancing performance by reducing boot time and by saving the memory used by the initialization tables. Please see 7.10.4.5 Initialization of Variables at Load Time in the C28x Optimizing C/C++ Compiler v22.6.0.LTS User's Guide.

    Let me loop in the compiler experts to see if they have any more recommendations.

    Best,

    Matt

  • Be sure you understand what it means to use features like TYPE = NOINIT or --ram_model.  Speaking at a high level, it means you agree to initialize the corresponding variables some other way, or to assume those variables are never initialized.  I suggest trying these features on a small test program.  Build both ways, and directly observe the difference.

    The source code to the runtime support functions, including the startup function _c_int00 and everything it calls, is part of the compiler installation.  Look in the directory install_root/lib/src.

    Thanks and regards,

    -George