\r
/* The function that actually performs the interrupt processing. This must be \r
separate to the wrapper to ensure the correct stack frame is set up. */\r
-void vEMAC_ISR_Handler( void );\r
+void vEMAC_ISR_Handler( void ) __attribute__((noinline));\r
\r
extern xSemaphoreHandle xEMACSemaphore;\r
\r
\r
/* Call the handler function. This must be separate from the wrapper\r
function to ensure the correct stack frame is set up. */\r
- vEMAC_ISR_Handler();\r
+ __asm volatile( "bl vEMAC_ISR_Handler" );\r
\r
/* Restore the context of whichever task is going to run next. */\r
portRESTORE_CONTEXT();\r