diff --git a/Demo/ARM7_LPC2368_Rowley/webserver/EMAC_ISR.c b/Demo/ARM7_LPC2368_Rowley/webserver/EMAC_ISR.c index d1132a3c2..10a6e5bcc 100644 --- a/Demo/ARM7_LPC2368_Rowley/webserver/EMAC_ISR.c +++ b/Demo/ARM7_LPC2368_Rowley/webserver/EMAC_ISR.c @@ -7,7 +7,7 @@ void vEMAC_ISR_Wrapper( void ) __attribute__((naked)); /* The function that actually performs the interrupt processing. This must be separate to the wrapper to ensure the correct stack frame is set up. */ -void vEMAC_ISR_Handler( void ); +void vEMAC_ISR_Handler( void ) __attribute__((noinline)); extern xSemaphoreHandle xEMACSemaphore; @@ -39,7 +39,7 @@ void vEMAC_ISR_Wrapper( void ) /* Call the handler function. This must be separate from the wrapper function to ensure the correct stack frame is set up. */ - vEMAC_ISR_Handler(); + __asm volatile( "bl vEMAC_ISR_Handler" ); /* Restore the context of whichever task is going to run next. */ portRESTORE_CONTEXT();