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.

RTOS/TM4C123BH6ZRB: RTOS BootLoader

Part Number: TM4C123BH6ZRB
Other Parts Discussed in Thread: SYSBIOS

Tool/software: TI-RTOS

Hi, I have been developing codes with TI controller for over 6 years. I recently started working on TI RTOS. I'm looking to move my old non RTOS project to RTOS. I have managed to move quite a lot apart from my boot loader. I had implemented custom boot loader in my old non ROS project. I'm having difficuly using my old custom boot loader in TI RTOS. Can you please guide me on that. I don't know how i suppose to merge my old custom boot loader to my new RTOS project as I'm switching various interrupt handlers while witchig from boot loder to main application and also I don't know how will I jump to main application. Do I have to dynamically creat HWIs and switch HWI handlers accordingly? Thanks

  • Hi,

    So If I understand you correctly, you've taken your non-RTOS app and trying to move it to TI-RTOS.
    You also have a custom bootloader that was working with your non-RTOS app that now you are trying to make it work with the TI-RTOS app?
    What does the custom bootloader do that makes it incompatible with the TIRTOS app? Yes, I can understand there are some dependencies between the bootloader and the app, but without knowing more specific what the issues are...Its hard to tell you what you need to do.

    Was your bootloader programming the HWIs for you non-RTOS project? HWIs for the app should programmed in TIRTOS and it will overwrite anything that you do in the bootloader.
  • The HWI module needs to know where you are moving the application's vector table to (reset and interrupts). The address should match to offset in your .cmd linker file (the reset vectors are typically placed at the first address). You can do this through the XGCONF GUI or hand edit the .cfg file as shown in this tutorial: processors.wiki.ti.com/.../TI-RTOS_USB_DFU

    TI does not have a tool to merge the compiled .out or .bin files, but I believe some 3rd party tools do this.

    You jump to the RTOS's start address the same as a non-RTOS. The PC gets a value loaded from the vector table. Does your custom bootloader do something different?

    I do not see a problem with dynamic HWIs, but I do not understand the application. I would not expect firmware to create a new interrupts past initialization.

  • respected sir,

                       The boot loader examples for Tiva C series have been given by TI.  You might want to look into that. You may find some clues.

    Regards,

    Digvijay.

  • Did you get enough ideas to try to figure this out?
  • HI,

    Thanks for your responses!

    The way I decided to move forward is

    • Have RTOS application project vector to some address say 0x4000
    • Use Ti provided boot loader (at address 0x0000)

    Problems I have

    • Don't know what steps involved in vectoring the RTOS application project to address 0x4000
    • what other steps I have to take to vector RTOS application project

    Kindly could you please help me on that, Thanks

    Kind Regards,

    Moh

  • Moh,

    I'm not familiar with how the boot loader works on TM4C devices but to change the RTOS application vector address you can do:

    var ti_sysbios_family_arm_m3_Hwi = xdc.useModule('ti.sysbios.family.arm.m3.Hwi');
    ti_sysbios_family_arm_m3_Hwi.vectorTableAddress = 0x4000;

    Judah

  • Thanks for reply. Do I need to do some thing with the .cmd file?

    I have already tried the change you suggested. It doesn’t work for me.  

  • The .cmd file is pretty simple. You should not have to modify it.

    What happens when you make those changes?
  • Mohsin,

    Did this get resolved?

    Todd

    [Updated. I'm marking this as closed due to no activity. If you disagree, please post a response.]