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: Startup Code & DO-178

Part Number: TMS320F28379D
Other Parts Discussed in Thread: C2000WARE

Hello,

I'm currently studying how startup code works and there's a question on my mind from a certification point of view.

Few people talk about what happens before the "main" function and only focus the written code, but what about startup code? Do you write your own code to replace the c_int00 so that you can test it or do you use the default library?

Is this library ignored or should it be checked?

I don't know much about DO-178 and I'm trying to learn more, but so many people seem to be working with the default library that there's probably a lot of reverse engineering involved (or not)?

What is your point of view/experience?

  • Hello,

    Few people talk about what happens before the "main" function and only focus the written code, but what about startup code? Do you write your own code to replace the c_int00 so that you can test it or do you use the default library?

    Is this library ignored or should it be checked?

    Sorry, I'm not sure I understand what you're asking here. Are you referring to the boot code for the device? What library are you referencing here?

    I don't know much about DO-178 and I'm trying to learn more, but so many people seem to be working with the default library that there's probably a lot of reverse engineering involved (or not)?

    What is your point of view/experience?

    I'm not aware of any experts we have that know about this particular certification.

  • Hello,
    Yes, The startup as written in the C2000 datasheet. I'm referring to the lib usually use by default in a new project with CCS (in my case rts2800_fpu32_eabi.lib)

  • Hi,

    The boot code is not configurable, it is in ROM. I'm not familiar with how to 'insert' executable code between the boot up sequence and the actual main being executed.

    The library is not related to the boot code, this is just a library for basic configurations. The main library C2000 relies on for peripheral configuration/setup is driverlib in C2000Ware. The library you point to is more of a math library, if you don't want to use it then you can rely on the compiler intrinsics. The library does utilize the FPU which is a hardware accelerator on most C28 devices, so it may be useful although I don't know if it follows the particular certification you're aiming for.

  • I don't think we're talking about the same thing.

    I'm talking about the "Initial Boot Routine for C28xx" and therefore code called "C Runtime".

    The "c_int00" function as given in my first post and which initializes stack, bss and data sections for example.

  • I looked into this by loading a project on the F28004x; when a device starts up it immediately jumps to the boot code and executes it.

    _c_int00 is part of the boot code:

    I suppose you could try and create your own library to modify the startup code, and you can refer to these files on how to do it. I wouldn't recommend it, but it's certainly possible. As far as how you would go about doing that, I'm not sure. I'm not sure other experts would go into detail about booting a proprietary core either.

    If you want to verify whether these follow the certification you're targeting, you can find them publicly here:

    C2000Ware_5_01_00_00\device_support\<device>\common\source

    ccs1260\ccs\tools\compiler\ti-cgt-c2000_22.6.1.LTS\lib\src

    These were just what I found by debugging a device and stepping through the first steps after CPU reset.