/*\r
* The tick interrupt handler.\r
*/\r
-void vTickISR( void ) __attribute__((naked));\r
+void vTickISR( void ) __attribute__((interrupt));\r
\r
/*-----------------------------------------------------------*/\r
\r
\r
void vTickISR( void )\r
{\r
- /* This is a naked function. This macro saves registers then re-enables\r
- interrupts. */\r
- portENTER_INTERRUPT();\r
+ /* Re-enabled interrupts. */\r
+ __asm volatile( "SETPSW I" );\r
\r
/* Increment the tick, and perform any processing the new tick value\r
necessitates. Ensure IPL is at the max syscall value first. */\r
#if( configUSE_PREEMPTION == 1 )\r
taskYIELD();\r
#endif\r
- \r
- /* Retore registers, then return. */\r
- portEXIT_INTERRUPT();\r
}\r
/*-----------------------------------------------------------*/\r
\r
#define portSET_INTERRUPT_MASK_FROM_ISR() ulPortGetIPL(); portDISABLE_INTERRUPTS()\r
#define portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus ) vPortSetIPL( uxSavedInterruptStatus )\r
\r
-#define portENTER_INTERRUPT() __asm volatile( "PUSHM R1-R15 \t\n SETPSW I" )\r
-#define portEXIT_INTERRUPT() __asm volatile( "POPM R1-R15 \t\n RTE" )\r
-\r
-\r
/*-----------------------------------------------------------*/\r
\r
/* Task function macros as described on the FreeRTOS.org WEB site. */\r