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.

AM4376: FreeRTOS support

Part Number: AM4376

TI Friends and Family,

Our customer has affirmed their interest and use of freeRTOS on the A9 main core on AM4376 and also the PRU core(s) if possible. We need formal confirmation on both of these.

Although not typical or even popular, it appears we certainly can support freeRTOS running on the main A9 core.  These links from the freeRTOS.org website for reference, including an example thread from a successful port to the TI ARM Cortex processor family essentially confirm this.  We would also like to know what example projects/ports exist already for freeRTOS + specifically AM437x, perhaps within the TI or 3rd party ecosystem? 

http://www.freertos.org/Using-FreeRTOS-on-Cortex-A-Embedded-Processors.html

https://www.freertos.org/FreeRTOS_Support_Forum_Archive/March_2016/freertos_FreeRTOS_on_AM335x_410c8cd3j.html

For the PRU, we would also like to confirm that freeRTOS can indeed run on the quad cores available in the PRU-ICSS subsystem?

Appreciate any input.

TY,

CY 

  • Team,

     

    So I might be answering my own question here, but after some additional research and digging have found the following:  With the confirmation that one can absolutely run freeRTOS on the Sitara A9 main core, in addition to TI-RTOS, Linux and others to name a few – next commenting on the use of the PRU, Programmable Real time Unit.

     

    For PRU, although in theory it is possible, one must first please realize that these cores are lightweight 32-bit proprietary RISC cores from TI, not ARM cores.  Thus, they are primarily used for running bare metal code often for IO Control and Ethernet communications.  In summary, these are small processors that are very tightly coupled with an IO subsystem offering low-latency control of IO and peripherals.  Realize too, that we support a separate C compiler specifically for the PRU.

     

    Generally, bare metal or even TI-RTOS is run on the PRU, while freeRTOS is much less popular.  I do not believe we have an example for freeRTOS running on the PRU specifically, while we do have an extensive WIKI devoted to PRU that includes TI-RTOS support - in terms of managing communications with the PRU, threads and inter-communications amongst the cores and IO.  You can find this here:  https://processors.wiki.ti.com/index.php/PRU-ICSS

     

    Specifically, here:

    http://software-dl.ti.com/processor-sdk-rtos/esd/docs/latest/rtos/index_device_drv.html#pruss

     

    We also have a general Training series for the Programmable Real-time Unit found here:

    https://training.ti.com/?q=node/1138864

     

    I still invite any others to review this material and provide any additional comments or guidance as you see fit in the meantime.

     

    TY,

    CY

  • Hey Chris,

    I think you provided a pretty good summary.

    On the PRU, I don't believe they are complicated enough or have the memory to justify an RTOS (TI RTOS or Free RTOS). Most folks write bare metal, even choosing to use assembly quite a bit over C.

    Thanks for the post.

  • Thanks Ron,

    I think we're good on this one, appreciate it.

    -Chris