FreeRTOS in iMX6 saboralilte board

yuvi1234 wrote on Wednesday, January 27, 2016:


Version : FreeRTOSV8.2.3
Compiler : arm-none-eabi-gcc
compiler version :gcc 4.9.2

My task is to port FreeRTOS to the iMX6 saboralilte board.

I need some help in modifying the following functions :

1.vConfigureTickInterrupt with main.c
2. vApplicationIRQHandler with main.c
3. vParTestInitialise() within partest.c
4. prvSetupHardware() within main.c
5. Configuring the tick interrupt: prvSetupTimerInterrupt() within port.c

I am totally new to this topic.

Kindly add your suggestions.

rtel wrote on Sunday, January 31, 2016:

[Apologies for the delay in your post showing up. This happens sometimes because the post went into moderation. The forum is set not to use moderation (as a log in is required), but very occasionally it still seems to get used, so we only check it twice a week.]

My task is to port FreeRTOS to the iMX6 saboralilte board.

This is a Cortex-A9, right? Does it use an ARM GIC (Generic Interrupt Controller), or a proprietary interrupt controller? Here are information pages for both respectively:

1.vConfigureTickInterrupt with main.c

The first thing to do is identify a suitable hardware timer. It might be that your part has a timer dedicated for this purpose, or it might be that you have to choose a peripheral timer. The timer needs to be able to automatically (with no manual re-programming) generate periodic interrupts at the frequency your require. Typically this would be between 100Hz and 1KHz, depending on your requirements.

Once you have identified the timer - forget FreeRTOS for a moment - and just create a very very simply application that does nothing but configure the timer to generate the interrupts at the frequency you want, and measure that the frequency is correct. Once the timer is doing that, you can take the timer configuration routine as your vConfigureTickInterrupt() function.

  1. vApplicationIRQHandler with main.c

This is dependent on how your hardware handles interrupts, so dependent on your answer to the questions at the top regarding the interrupt controller used.

  1. vParTestInitialise() within partest.c

The name of this file is historic, and stands for parallel port test. This is nothing more than GPIO to toggle LEDs, I’m sure you will be able to work that out.

  1. prvSetupHardware() within main.c

That is out of scope of FreeRTOS support - the chip manufacturer will normally provide start up and chip configuration routines.

  1. Configuring the tick interrupt: prvSetupTimerInterrupt() within port.c

See the answer to your first question.

yuvi1234 wrote on Tuesday, February 02, 2016:

Thanks for the reply.
Yes,this is a Cortex-A9 and it use an ARM GIC (Generic Interrupt Controller).
I have compiled the source successfully.

Can you please tell me how to modify FreeRTOSConfig.h according to imx6 saboralilte board ??

I have herewith attached the FreeRTOSConfig.h which i have edited from CORTEX_A9_Zynq_ZC702 demo available.

rtel wrote on Tuesday, February 02, 2016:

The file you have attached presumably contains the constants you need, and the web site says how to set them, but unfortunately I cannot tell you how to set them for your specific board as first I would need to download and study the data sheet - and that is outside the scope of FreeRTOS support.


By they way - your post went into moderation again and I only saw it as I happened to be logged in. Do you know why SourceForge might think your posts are not legitimate?

yuvi1234 wrote on Saturday, February 06, 2016:

Even i am not sure why SourceForge might think my posts are not legitimate?
I hope i did not violate any laws of Source forge .!!!

Anyways thanks for the reply.

I want to boot the freertos in imx6 Board where i am not getting any fundamental steps for it. I am just following the website but it is not up to my understanding. I need a clear cut step by step procedure from scratch.

I am just a beginner . Kindly suggest me some materials , videos , or some links other than .

Thank you .