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.

CCS/CCSTUDIO: Double application handling

Part Number: CCSTUDIO
Other Parts Discussed in Thread: TMS320C6418,

Tool/software: Code Composer Studio

Hi there,

I'm developing an application on a TMS320C6418 target, using CCS5.5.0.

I have a main application  "Application_1", and I need to be able to switch to a second application "Application_2" in case a special condition occurs.

I have 2 different projects, 2 different compilations and 2 .hex files (converted from the .out through hex6x.exe utility).

Application_1 and Application_2 have to be stored on an external EEPROM, ROM boot mode (CE1) is used.

Application_1 is the one that Always has to be executed after reset: it is stored at address 0 of the external ROM so that the boot sequence runs it on startup.

Application_2 is stored on the external memory also, on a different page of the EEPROM.

How do I let Application_2 be the new application to be executed, switching from the running Application_1?

Is it enough to create a partition on the onchip RAM, copy the entire Application_2 hex file and the move the program counter at the beginning of Application_2 RAM address?

Thank you

Regards

  • Part Number: CCSTUDIO

    Tool/software: Code Composer Studio

    Hi there,

    for my application I'm thinking about running the code located into an external EEPROM. I would generate a .bin file with the hex application and then store it into the EEPROM.

    I would like to have a "bootloader" and the "application", so that:

    - the "bootloader" is  started with the ROM boot mode (CE1), it checks if an "application" program is stored into the EEPROM and run it;

    - the "application" is the actual application code that has to run.

    I will then need two binary images to be stored into the EEPROM: the "bootloader.bin" and "application.bin":

    BOOTIMAGE @ EMIFA CE1 0x9000 0000

    APPIMAGE @ EMIFA CE1 0x9000 1000

    What is the best solution for this?

    How can i modify the .cmd file so that the code can be executed directly from the external flash?   

    Thanks

    Regards

    Stefano

  • Hi Stefano,

    The team is notified. They will post their feedback directly here.

    BR
    Tsvetolin Shulev
  • Hi,

    I understand this is a custom application. I want to clarify if you are using it with TI RTOS or as a bare metal app? Which TI RTOS SDK version?

    Best Regards,
    Yordan
  • Hello Yordan,
    thank you for your reply.
    Application_2 is the real application, Application_1 is a custom bootloader.
    The intent is to Always start with the Application_1 (bootloader) so that the user can decide (through an rs232 terminal protocol) to enter a "Maintenance mode" that let eventually update (writing on the external flash) a new Application_2/get Sw Info/do some test..
    Application_1 (the custom bootloader) has no TI-RTOS, just a main with other functions that handle the terminal protocol.
    Application_2 is developed on a different project with DSP-BIOS, version 5.42.2.10.
    Let me know if you need more information!

    Thank you!
    Regards
  • Hi Yordan,
    have you been able to read my answer?
    Thank you!
  • Hi,

    Yes, this has been forwarded to the RTOS team to elaborate.

    Best Regards,
    Yordan
  • Yes, typically secondary bootloaders detect the entry point location of the c_int00 and pass the control to the application using the following sequence:

    typedef void (*EntryFunPtr_t)(void);

    void (*func_ptr)(void);

    func_ptr = (EntryFunPtr_t) entryPoint_CPU0;
    func_ptr();

    Typically for the DSP, you may need the entry point to be aligned to 2 byte boundary.

    Regards,
    Rahul
  • Stefano,

    Please do not open duplicate threads for the same issue. We are discussing this topic on secondary boot on the other thread so I will merge the topics.

    Regards,
    Rahul