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/TM4C1294KCPDT: Mapping TI-RTOS and Application to seperate memory regions

Part Number: TM4C1294KCPDT


Tool/software: TI-RTOS

Hi,

Currently we are using TM4C1294x.
In our previous stellaris based application, we had a separate bootloader and an application program.
During power up the bootloader executes first and then the application. Bootloader decides whether to
run the current application or update it.

With current TIVA C(TI-RTOS based) application, we are considering to separate
TI-RTOS and the application. TI-RTOS would be FIXED whereas application could be overwritten.

Is this kind of usage possible? is it possible to map TI-RTOS and application to different memory regions?
If it is possible please let us know if there is any reference document or example.

Best Regards
Paddu

  • Yes it is possible. You cannot then change the .cfg though with the new application image. It will probably be easiest if the .cfg is in a separate project and the application project pulls in the generated linker/libraries/includes from the kernel project.

    Why do you want to do this though? To save space?

    Does your bootloader use TI-RTOS now? Also, it sounds like everything is working now and this is just an optimization...correct?

    Todd
  • Can I mark this as resolved?
  • Hi Todd,

    I am sorry for the delay.
    Thank you very much for the suggestion.

    Yes, we want to map RTOS into separate memory section in order to save the space(RAM).
    This project has a main CPU which sends the update application program to TIVA C
    and the bootloader saves this application code into RAM and then program into the Flash.

    So, if the application includes RTOS, the total program size will be big which may
    not fit into TIVA C's RAM.So, we are thinking of using RTOS at a FIXED memory section
    and update the application program only.

    Bootloader won't use RTOS.

    As per your suggestion is it require to build two separate projects?
    Please let me know if there is any reference project we could refer.

    Best Regards
    Paddu
  • Hi,

    I talked this over with the engineer that is responsible for making the kernel that goes into the ROM for certain devices (e.g. CC13xx, CC26xx, etc. ...TM4C does not have the TI-RTOS kernel in the ROM). Note: this is basically what you are wanting to do.

    It's definitely doable but he strongly recommended against it. Making this kernel image requires significant knowledge of the kernel. For example, what if a kernel API calls an RTS function...how is that going to be handled since the RTS function will be in different locations.

    Also, this really locks down the kernel configuration. In more recent kernel releases, we've tried to move some functionality out of the .cfg file and into the linker file (e.g. heap and stack size specification), but you are on earlier kernel version.

    There are steps to minimize the size of the kernel to get it down to the 10-15K size. This is probably a more worthwhile thing to look at instead of having a stand-alone kernel image.

    Todd