FreeRTOS port on Microblaze on custom board

ankanbasak wrote on Friday, July 08, 2011:


I have a baremetal app running on a custom-board under a project along with the hw_platform (system.xml) and the bsp under the project explorer. I have the FreeRTOS source for Microblaze port. I am wondering how to get FreeRTOS running underneath this app. Maybe I will start by importing the sources into the project required for microblaze, then modifying the demo sources to fit the current board. I will also be modifying the app to use some multitasking features, similar to the demo provided in FreeRTOS dir. Any directions or suggestions to move forward with this will be appreciated. Thanks.

rtel wrote on Friday, July 08, 2011:

The process is the same for all ports really.

You need to include the FreeRTOS source files found in FreeRTOS/Source (tasks.c, queue.c, list.c and optionally timers.c), then provide a pvPortMalloc() and pvPortFree() implementation - three samples are provided in FreeRTOS/Source/Portable/MemMang.  As for include files you need to have FreeRTOS/Source/include and FreeRTOS/Source//portable/GCC/MicroBlaze in the include path.  You also need to have a FreeRTOSConfig.h file in the include path.

There are lots and lots and lots and lots of examples FreeRTOSConfig.h files, and lots of demo apps that show you how to use the kernel.  The easiest thing to do is copy an existing demo app.

Be aware also that there is now a new upgraded MicroBlaze port that works with the latest ISE tools, and the latest MicroBlaze IP.  It also supports exceptions and the floating point unit.  It is not published publicly yet, but if you contact me ( directly I can show you where it is hidden.  It is documented already, I just need to add a few extra items into the demo app before final release.


ankanbasak wrote on Monday, July 11, 2011:

I am running the Xilinx ISE 13.1 and I might need the latest port from FreeRTOS. Can i contact you at the email info at


rtel wrote on Monday, July 11, 2011:

You know what - there seems to be a lot of interest in this - so to save my time I’m just going to give you the link.  However be aware that this page is not yet official, and not yet linked into the FreeRTOS web site.  As far as I know the port is sound, but it will get more testing before it is incorporated into the main release.