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.

bootloader for concerto F28M35

Other Parts Discussed in Thread: CONTROLSUITE, SYSBIOS

Do you have a bootloader application (or example app) available that shows how:

1) to boot an app from a bootloader (arm + dsp)

2) write app to flash (arm + dsp)

3) how these (bootloader + main application) should coexist in flash ? (how should memory map of 'main' application look like ?

4) how to generate the main application in binary format

version information

BIOS: bios_6_33_05_46

IPC: ipc_1_24_03_32

Hardware: F28M35H52C  on a development board 

  • Hi Harm,

    are you referring to a secondary boot loader? Essentially where the bootloader is just another application which is executed by the boot ROM (to load, flash and start execution of another application)

    I don't think that there is a BIOS example for such a bootloader. I think that would be better addressed in the C2000 forums. They might have an bootloader example in their ControlSuite software product. It could be somewhat tricky in terms of how many bootloaders you will need (e.i. one for the M3 and another one for the C28, or if you can just run one from the M3 to flash both...)

    Are you planning to use BIOS in your application program (the application which the bootloader is going to execute)?

  • Harm,

    Currently we do not supply bootloaders for the Concerto device, however several third parties have bootloaders available.  I would take a look at SimmaSoftware.com and CodeSkin.com.  What peripheral are you wanting to use to bootload the application?

    Here's a quick rundown of answers for the questions you asked:

    1. The best way to do this is to define an entry point for your applications (both C28 and M3).  This location should be statically defined and both the bootloader and the application should use this location.  When its time to boot the application, the bootloader will simply branch to this location.
    2. You'll need to use the FlashAPI to load your application into flash.  Do a search for F021 Flash API in the TI.com search.
    3. The bootloaders and applications will need to reside in different sectors of flash.  Typically the bootloader is designed such that it can occupy a single section leaving the rest of the sections for the end applications.
    4. There are many options for the output format of a binary application.  Refer to the C28 and ARM assembly language tools user guide.  Specifically you'll want to look for the hex utility.

    Regards,

    Trey

  • >are you referring to a secondary boot loader? Essentially where the bootloader is just another application which is executed by the boot ROM (to load, flash and start execution of another application)

    Yes, we're thinking of a secondary boot loader, residing in flash too.

    The secondary bootloader gets started by the ROM. It communicates via USB with an external controller app, using our own protocol, with does something like this pseudo code

    check_version();  // of main app

    if (newer available)

         write_to_flash(new_main_app);

    boot_main_app();

    We where thinking about using sysBIOS in both our application program, as in the secondary bootloader. 

    But it seems as soon as we throw in, sysBIOS (and IpcMgr) in out bootloader (or appliation) we have problems.. (as in, stuff won't start)

  • Hi Harm,

    The short answer is that we regard a bootloader as an application specific single-task type of program and therefore don't have a SYS/BIOS example for this.

    In my mind the bootloader's application code should be as small as possible with a specific single task in mind (update the firmware when needed). This would allow you to have more code space for your real application. Based on the pseudo-code given I would suggest not to use SYS/BIOS as a bootloader since there is no need for multi-tasking.

    You are probably already aware that the USB controller is only accessible to the M3. You don't need to run SYS/BIOS to communicate with the C28. There are drivers and examples (IPC and IPClite) in Control Suite's MWare library that can send message to the C28. Whether or not the C28 can be flashed from the M3 is not clear to me, but  perhaps the 3rd party bootloader apps (SimmaSoftware or CodeSkin) might be what you're looking for.

  • I completely agree with Tom.  An RTOS is completely unnecessary for a bootloader and is a waste of resources.

    To add to Tom's comments: each core must be programmed independently.  So you will need two bootloaders...one for the M3 and one for the C28.  If you've not ever written a bootloader before this is a very complex part to learn on and I would highly recommend you either consult with experts or buy a bootloader from a third party.

    Regards,

    Trey

  • Trey,

    I only need to boot the cm3. I download the app upgrade code from a communication network that the c28 controls. I transfer the code through the IPC and first store it into high flash on the cm3 side, using the falsh programming tools. Next I attempt to transfer the code from the high flash memory location down to 0x200000.

    I have not had much luck in doing this. It appears that the ramfuncs code does not get overwritten (works until I cycle power).  I believe I could get it to work if I fix the boot up location and then only transfer the app code minus the ramfuncs. How do I determine the location of the c_int00() startup location and how do I fix it in memory? Any other suggestions as to how to overcome this / solve the flash code transfer problem would be helpful. I have had zero luck trying to set breakpoints in RAM with the debugger. The XDS560V2 does not support trace on the Concerto.

    CCS5.4, Concerto f28m35h52c1, XDS560V2 STM USB are what I am using.

    Thanks,

    Pat

  • Pat, could you repost this question onto the C2000 forums page. They are much more knowledgeable with the concerto.

  • Hi Trey,

    can you recommend a third party who has a off the shelf solution for concerto boot loader?

    thanks,

    Abdullah