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.

EK-TM4C1294XL: requesting help getting started with FreeRTOS with IAR on EK-TM4C1294XL board

Part Number: EK-TM4C1294XL


Hello all,

I'm having trouble setting up FreeRTOS with IAR to run on my EK-TM4C1294XL Launchpad board. 

I am a beginner to FreeRTOS and IAR, but have been reading FreeRTOS docs and been using IAR for a while.

IAR has only two FreeRTOS demos for TI, but they are for (I think) Luminary micro LM3Sxxx and LM3Sxxxx.

FreeRTOS has many demos, but none seem to be ported for the EK-TM4C1294XL Launchpad board.  There are several Cortex_M4F demos, but they seem to be for different chip manufactures.   FreeRTOS has an IAR/ARM_CM4F directory with a header and c file.

I think, for now, I just want to know if there is a FreeRTOS version of the "binky" project for the EK-TM4C1294XL board.  Or (maybe more importantly) how and what files/directories to port with IAR to begin a simple FreeRTOS project. 

Thanks George

  • Hello George,

    Unfortunately we do not have any FreeRTOS example projects, TI-RTOS is the one RTOS we are actively supporting, and no one on our team has FreeRTOS experience.

  • I would be happy to help, but would need to know how far you have got.

    The first thing to do would be create an IAR project for that board that does not include FreeRTOS to ensure you have the project set up correctly (correct start up code, correct linker scripts, etc.).  Do you have that working?

    After that you will need to add in the FreeRTOS source code as described here: https://www.freertos.org/Creating-a-new-FreeRTOS-project.html  the correct port layer to use will be FreeRTOS/Source/portable/IAR/ARM_CM3 if the TM4C1294 Cortex-M4 core does not have a floating point unit, or FreeRTOS/Source/portable/IAR/ARM_CM4F if it does have a floating point unit.  Have you done that?  Does it compile?  Remember to have the FreeRTOS/Source/portable/IAR/[architecture] in the compiler's include path, and pick a FreeRTOSConfig.h file from a different but similar project in the FreeRTOS download - the one in this directory would be a good starting point although it is quite old any parameters added to FreeRTOS after the config file was created will default to a working value: https://github.com/FreeRTOS/FreeRTOS/tree/master/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil

    Let me know how you get on.

  • Hello Richard,

    Thanks for posting to help George along! Regarding the TM4C1294 floating point unit, all TM4C123x and TM4C129x MCU's have a floating point unit. It is the older LM3S set of devices that do not have built-in FPU capability. If I see any other areas I can provide feedback from a TM4C standpoint I will continue to do so.

  • Hello Richard and Ralph,

    Thank you VERY much for your time!

    To answer your questions...

    A few weeks ago I started a straight line IAR project, mostly to initialize peripherals on my on the EK-TM4C129XL board.  That all works ok. 

    I am "re-learning" freeRTOS and IAR ( I worked on both some years ago, but forgot much since).  I know bits-and-bobs of what both of you mentioned, and have been reading pertinent things about freeRTOS and IAR.  Your remarks give me confidence that I seem to be on the right track.  But I need some time to digest all of this.  I'm doing this as a home project in my "spare time", so it takes longer.  I think I'm mostly concerned about pathing/porting in IAR for freeRTOS, but have not gotten there yet. 

    Richard, thanks for the links.  I'll check them out.

    I am concerned about what I perceive as freeRTOS not keeping up with newer hardware.  They seem to drop off with Luminary Micro (which is when I last used freeRTOS).  But I do see some paths for Cortex-M4F.  Hope they work with my new TI hardware. 

    I'll post again if I have doubts/problems. 

    Thanks again, George

  • > I am concerned about what I perceive as freeRTOS not keeping up with newer hardware. 

    We have support for the latest ARM Cortex-M23 and M33 devices, as well as the latest RISC-V.  I like to think we keep up with the tech, although we don't always keep up with community use and contributions ;o)  Specific to TI (although not new tech) there have been updates to the MSP430 ports recently.

    > But I do see some paths for Cortex-M4F

    FreeRTOS will run on any Cortex-M0, M0+, M3, M4, M4F, M23 and M33 that as enough RAM to create task stacks.  On all these architectures it is "just" a matter of creating a project, as the kernel itself does not have any dependency outside of the core (the NVIC and Systick being on the core itself).