Inline the asm function in the ISR wrapper.

pull/1/head
Richard Barry 16 years ago
parent e30b39e09f
commit c5c32913c9

@ -7,7 +7,7 @@ void vEMAC_ISR_Wrapper( void ) __attribute__((naked));
/* The function that actually performs the interrupt processing. This must be /* The function that actually performs the interrupt processing. This must be
separate to the wrapper to ensure the correct stack frame is set up. */ 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; extern xSemaphoreHandle xEMACSemaphore;
@ -39,7 +39,7 @@ void vEMAC_ISR_Wrapper( void )
/* Call the handler function. This must be separate from the wrapper /* Call the handler function. This must be separate from the wrapper
function to ensure the correct stack frame is set up. */ 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. */ /* Restore the context of whichever task is going to run next. */
portRESTORE_CONTEXT(); portRESTORE_CONTEXT();

Loading…
Cancel
Save