eperie wrote on Thursday, November 17, 2016:
Hi,
I just successfully completed porting vConfigureTickInterrupt(), vClearTickInterrupt() vApplicationFPUSafeIRQHandler(), vParTestInitialise(), vParTestSetLED(), vParTestToggleLED() from the Cyclone V demo to a Cortex-A7, and your documentation "Using FreeRTOS on ARM Cortex-A9 Embedded Processors That incorporate a Generic Interrupt Controller (GIC) " was great and extremely useful for this purpose - thanks.
I would have a suggestion however: may be you could explicit that the interrupt priority for the timer interrupt shall be set in the GIC to portLOWEST_USABLE_INTERRUPT_PRIORITY << portPRIORITY_SHIFT, i.e. something like:
Special Note 4: The priority level for the interrupt IRQn used for the timer tick shall be set to (portLOWEST_USABLE_INTERRUPT_PRIORITY << portPRIORITY_SHIFT) in its Interrupt Priority Register (ICDIPRn).
Since I was using the ARM GIC for the very first time, I missed this part until vPortValidateInterruptPriority() trigered a configASSERT() while validating portICCRPR_RUNNING_PRIORITY_REGISTER and revisited port.c and the Cyclone V demo code for vConfigureTickInterrupt().
Best regards,