]> git.sur5r.net Git - freertos/blobdiff - Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/IntQueueTimer.c
RX GCC port - Introduce macros that perform the interrupt entry and exit manually...
[freertos] / Demo / RX600_RX62N-RSK_GNURX / RTOSDemo / IntQueueTimer.c
index 5b3f11c70c14711b183c66eee06f6826d37c8aaf..963e3623d42a4f194896a6fb1d344866a2ed22d4 100644 (file)
@@ -72,8 +72,8 @@
 #define tmrTIMER_2_3_FREQUENCY ( 2001UL )\r
 \r
 /* Handlers for the two timers used. */\r
-void vT0_1InterruptHandler( void ) __attribute((interrupt));\r
-void vT2_3InterruptHandler( void ) __attribute((interrupt));\r
+void vT0_1InterruptHandler( void ) __attribute((naked));\r
+void vT2_3InterruptHandler( void ) __attribute((naked));\r
 \r
 void vInitialiseTimerForIntQueueTest( void )\r
 {\r
@@ -131,13 +131,27 @@ void vInitialiseTimerForIntQueueTest( void )
 \r
 void vT0_1InterruptHandler( void )\r
 {\r
+       /* This is a naked function.  This macro saves registers then re-enables\r
+       interrupts. */\r
+       portENTER_INTERRUPT();\r
+       \r
        portYIELD_FROM_ISR( xFirstTimerHandler() );\r
+       \r
+       /* Restore registers, then return. */\r
+       portEXIT_INTERRUPT();\r
 }\r
 /*-----------------------------------------------------------*/\r
 \r
 void vT2_3InterruptHandler( void )\r
 {\r
+       /* This is a naked function.  This macro saves registers then re-enables\r
+       interrupts. */\r
+       portENTER_INTERRUPT();\r
+       \r
        portYIELD_FROM_ISR( xSecondTimerHandler() );\r
+       \r
+       /* Restore registers, then return. */\r
+       portEXIT_INTERRUPT();\r
 }\r
 \r
 \r