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.

uClinux on TM4C129X series

I came across this whitepaper which describes the abiltiy to run the old linux kernel in the TI TM4C129X devices. I have a requirement to compile a .c file which is sent over-the-air to an IOT node. Upon compilation of this small sized code, I expect a node to execute the binary.
 I understand that this is certainly possible with std Linux distribution with a Sitara SoC but I wish to know if this could be done using uClinux.


Question 2 : If I need, would it also be possible to download a .bin file which was previously compiled using  Code Composer studio for the 129X device and execute the same in the uClinux environment while it is running?

Question 3 : How is it possible to do the above mentioned tasks;

1. compilation of a souce code

2. running of a  new .bin file while the OS is running

using TI RTOS? Is it possible to use TI RTOS to perform such tasks?

Than you for your responses.

  • Hello Isuru,

    We currently don't have any support for uCLinux on TM4C devices. To my knowledge we don't have any plans to support uCLinux on TM4C devices.

    Your idea to build a binary file, on a Linux host machine, and execute it on a Linux target machine can be achieved as long as the binary is cross-compiled to run on the target machine. But since we don't have support of uCLinux, I believe this to be far more time consuming approach.

    A relatively simpler approach is for the node to run a bootloader that can receive a binary file over-the-air and program certain section of flash. The ethernet bootloader example in TivaWare (located at examples\boards\dk-tm4c129x\boot_emac_flash) can be used as a base. The functionality of receiving binary file over-the-air has to be added to this bootloader, which would depend on the wireless hardware and protocol.

    Thanks,
    Sai
  • Dear Sai,

    Could you please explain to me how is it possible to update part of the flash while the MCU is running?
    I currently use the lanchpad to program the MCU. Could you please guide me as to how it is possible for a node to program it self? Is this done using another MCU?

    p.s. I have two dk-tm4c129 development boards too. Yes I am able to use them to try out the examples. But could you please elaborate what is happening there? I feel a little lost. Are we using the NAND flash in the development board? Or is the code running out of the flash in the MCU?

    Thank you for your support.

  • Hello Isuru,

    The flash on TM4C devices can be programmed by code that is running from the same flash. TivaWare has examples to demonstrate this.

    Basically a bootloader - code that receives data and programmes the flash - is programmed into certain section of the Flash using JTAG. The application code is built such that it does not run from the area where the bootloader is programmed - for this the linker script must be modified. The bootloader can then receive this application from an external source (over UART, Ethernet etc) and program the flash such that it does not program itself.

    In TivaWare the bootloader code is located at "<TivaWare_Install_directory>\boot_loader". This bootloader has to be configured using a "bl_config.h" file. The example located at "<TivaWare_Install_directory>\examples\boards\dk-tm4c129x\boot_emac_flash" demonstrates how to configure the bootloader source to update firmware over Ethernet.

    There are two examples of applications that works with the "boot_emac_flash" bootloader and are located at "<TivaWare_Install_directory>\examples\boards\dk-tm4c129x\boot_demo_emac_flash" and "<TivaWare_Install_directory>\examples\boards\dk-tm4c129x\boot_demo_flash".

    Hope this helps!

    Thanks,
    Sai