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.

Building executable binary for OMAP L138

Hello,

I'm making a secondary bootloader that will select a firmware out of two, load it into the external RAM and then "JUMP" to the entry point of this firmware.

I have now reached the point where my bootloader is stored in the FLASH memory and loaded in the Shared RAM by the OMAP L138, then it initialize the mDDR and the Serial link, I can also read and write to the Flash memory. What I would like now is to load a simple program that light up some LED in the mDDR and "JUMP" to the entry point of this program.

I have already the little program that light up some LED, But I don't know how to convert the .out file generated by Code Composer Studio to an executable file/image that I can load at the appropriate address and then JUMP to it.

I would appreciate any help you can provide me.

Cordially

CARTIER Arthur

  • Hi CARTIER Arthur,

    CARTIER: said:
    But I don't know how to convert the .out file generated by Code Composer Studio

    to an executable file/image that I can load at the appropriate address and then JUMP to it.

    Using AIS gen Tool, .out file can be converted into an executable file and loaded.

    For more detailed information on AIS gen tool and about "jumping" to the address,

    please have a look at this document, http://www.ti.com/lit/an/sprab41d/sprab41d.pdf

     

    Regards,

    Shankari.

     

    --------------------------------------------------------------------------------------------------------
    Please click the Verify Answer button on this post if it answers your question.

    --------------------------------------------------------------------------------------------------------

  • Hello Shankari,

    Thank you for your help, but I already use the AIS gen tool to generate an AIS script (witch include the binary) that will be interpreted by the ARM internal bootloader to load the program in memory and jump to its entry point.

    That's what I use for my bootloader to be loaded and executed and then my bootloader should load the firmware of the "real program" and JUMP to its entry point

    So what I want to do is to generate only the binary file of the "real program" without the AIS script, so my bootloader can simply load it in the memory and jump to its entry point.

    Cordialy

    CARTIER Arthur

  • Hello again,

    I have succesfully launched my "real program" from my bootloader by extracting 4 binary section (.text, .data, .const and .intvecs) from the script generated by the AIS gen tool and then JUMP from my bootloader to my "real program" with this two lines of code :

    void (*startFirmware)(void) = (void (*)(void))0xC000F1C8;
    startFirmware();

    I got the address 0xC000F1C8 from the .map file generated by CCS 5 (labeled as entry point).

    In the .cmd file I have take care to use two distinct memory space for my bootloader and my "real program", basically my bootloader is in the Shared RAM (SHRAM) and my "real program" is in the mDDR (DDR2) except form the interruptions vectors (.intvecs) witch need to be placed in the RAM of the ARM core.

    But I'm still searching for a tool able to generate this binary executable sections (.text, .data, .const and .intvecs) out of the .out file, without the surrounding AIS script generated by the AIS gen Tool.

    Best regards

    CARTIER Arthur

  • Arthur,

    You might be interested in looking at the out2rprc tool available as part of Starterware. That will format your application and insert as header to each section of your binary.

    http://processors.wiki.ti.com/index.php/OMAPL138_StarterWare_Booting_And_Flashing

    Your  bootloader will also need to add the source from the starterware bootloader to interpret the formatted application image. Look at the two approaches discussed in the thread here:

    http://e2e.ti.com/support/dsp/omap_applications_processors/f/42/t/246374.aspx?pi74958=1

    Regards,

    Rahul

  • Hi Rahul,

    Thank you very much, this solution fits exactly my needs.

    Best Regards

    Arthur