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.