Replace asm wrappers to interrupt handlers with functions that use the interrupt attribute.

pull/1/head
Richard Barry 15 years ago
parent c92128869d
commit 66c1a9b76d

@ -98,7 +98,7 @@ void vSoftwareInterruptISR( void ) __attribute__((naked));
/* /*
* The tick interrupt handler. * The tick interrupt handler.
*/ */
void vTickISR( void ) __attribute__((naked)); void vTickISR( void ) __attribute__((interrupt));
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -336,9 +336,8 @@ void vSoftwareInterruptISR( void )
void vTickISR( void ) void vTickISR( void )
{ {
/* This is a naked function. This macro saves registers then re-enables /* Re-enabled interrupts. */
interrupts. */ __asm volatile( "SETPSW I" );
portENTER_INTERRUPT();
/* Increment the tick, and perform any processing the new tick value /* Increment the tick, and perform any processing the new tick value
necessitates. Ensure IPL is at the max syscall value first. */ necessitates. Ensure IPL is at the max syscall value first. */
@ -352,9 +351,6 @@ void vTickISR( void )
#if( configUSE_PREEMPTION == 1 ) #if( configUSE_PREEMPTION == 1 )
taskYIELD(); taskYIELD();
#endif #endif
/* Retore registers, then return. */
portEXIT_INTERRUPT();
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/

@ -122,10 +122,6 @@ void vPortSetIPL( unsigned long ulNewIPL ) __attribute__((naked));
#define portSET_INTERRUPT_MASK_FROM_ISR() ulPortGetIPL(); portDISABLE_INTERRUPTS() #define portSET_INTERRUPT_MASK_FROM_ISR() ulPortGetIPL(); portDISABLE_INTERRUPTS()
#define portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus ) vPortSetIPL( uxSavedInterruptStatus ) #define portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus ) vPortSetIPL( uxSavedInterruptStatus )
#define portENTER_INTERRUPT() __asm volatile( "PUSHM R1-R15 \t\n SETPSW I" )
#define portEXIT_INTERRUPT() __asm volatile( "POPM R1-R15 \t\n RTE" )
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
/* Task function macros as described on the FreeRTOS.org WEB site. */ /* Task function macros as described on the FreeRTOS.org WEB site. */

Loading…
Cancel
Save