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

This commit is contained in:
Richard Barry 2010-09-22 22:03:40 +00:00
parent c92128869d
commit 66c1a9b76d
2 changed files with 3 additions and 11 deletions

View File

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

View File

@ -122,10 +122,6 @@ void vPortSetIPL( unsigned long ulNewIPL ) __attribute__((naked));
#define portSET_INTERRUPT_MASK_FROM_ISR() ulPortGetIPL(); portDISABLE_INTERRUPTS()
#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. */