EXTERN vTaskSwitchContext\r
EXTERN ulPortYieldRequired\r
EXTERN ulPortInterruptNesting\r
+ EXTERN vApplicationIRQHandler\r
\r
PUBLIC FreeRTOS_SWI_Handler\r
PUBLIC FreeRTOS_IRQ_Handler\r
AND r2, r2, #4\r
SUB sp, sp, r2\r
\r
- ; Obtain the address of the interrupt handler, then call it.\r
+ ; Obtain the address of the interrupt handler, then pass it into the ISR\r
+ ; callback.\r
PUSH {r0-r3, lr}\r
LDR r1, =configINTERRUPT_VECTOR_ADDRESS\r
LDR r0, [r1]\r
- STR r1, [r1] ; [SAMA5] Write to IVR in case protect mode is being used.\r
- DSB\r
- ISB\r
- CPSIE i\r
- BLX r0\r
+ LDR r1, =vApplicationIRQHandler\r
+ BLX r1\r
POP {r0-r3, lr}\r
ADD sp, sp, r2\r
\r