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.
- 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.
- 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.
- prvSetupHardware() within main.c
That is out of scope of FreeRTOS support - the chip manufacturer will normally provide start up and chip configuration routines.
- Configuring the tick interrupt: prvSetupTimerInterrupt() within port.c
See the answer to your first question.