FreeRTOS for iMX6 Quad

I am interested in getting FreeRTOS working with the Freescale iMX6 processor (quad). How do I get started to get the kernel to build and run on this target. This is a arm a9 processor. It is likely that 3 cores will be running linux while the other core will be for FreeRTOS. thanks,

FreeRTOS for iMX6 Quad

There are A9 demo projects for Xilinx, Altera and Renesas parts. You can use those to get started. There is also this page http://www.freertos.org/Using-FreeRTOS-on-Cortex-A-Embedded-Processors.html

FreeRTOS for iMX6 Quad

Can I use the FreeRTOSSourceportableGCCARM_CA9 port files for the imx6 CA9 assuming using GCC ?

FreeRTOS for iMX6 Quad

If you are using GCC, and the iMX6 chip you are using has a standard GIC (Generic Interrupt Controller from ARM) then that is the correct port layer to use. You already have a link to the generic “FreeRTOS on ARM Cortex-A” page in a post above. You will also find examples of how to set the constants referred to on that page in the Xilinx Zinq, Altera Cyclone 5 SoC and Renesas RZ demo projects – although tose projects may or may not be using the GCC compiler the stitching between the project files and the FreeRTOS Cortex-A port layer is the same whichever compiler is used. Regards.

FreeRTOS for iMX6 Quad

Directly from that imx6 datasheet: The ARM Cortex A9 MPCore™ complex includes: • General Interrupt Controller (GIC) with 128 interrupt support So it appears that I can use the existing port layer. Is there documentation on what specific function need to exist in port.c? It seems that they are: pxPortInitialiseStack xPortStartScheduler vPortEndScheduler prvSetupTimerInterrupt vPortEnterCritical vPortExitCritical However, other ports have additional functions. I would have expected all the same functions name in every port.c. Is this incorrect ? thanks,

FreeRTOS for iMX6 Quad

You don’t need to edit anything in the port.c file – just build it. The prototypes for the portable layer functions called by the core kernel code are in portable.h – so the functions in that header file must be implemented, any other functions would be port specific. Regards.