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 portLOWESTUSABLEINTERRUPTPRIORITY << portPRIORITYSHIFT, i.e. something like:
Special Note 4: The priority level for the interrupt IRQn used for the timer tick shall be set to (portLOWESTUSABLEINTERRUPTPRIORITY << portPRIORITYSHIFT) 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 portICCRPRRUNNINGPRIORITY_REGISTER and revisited port.c and the Cyclone V demo code for vConfigureTickInterrupt().
Thanks for taking the time to provide your feedback.
You are welcome.
I forgot to mention that I had to slightly modify portASM.s from:
I am compiling with the following options:
-march=armv7-a -mtune=cortex-a7 -mfloat-abi=hard -mfpu=neon-vfpv4 -mthumb
All the best,
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.