]> git.sur5r.net Git - freertos/blobdiff - Demo/CORTEX_A2F200_SoftConsole/ParTest.c
Added BSP generation files to MicroBlaze directory.
[freertos] / Demo / CORTEX_A2F200_SoftConsole / ParTest.c
index 44f43c2fded72155fbdcc994993f718ebbfa61f9..5ee52e4905f848266a8759a1943023033b6c94c3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.0.0 - Copyright (C) 2011 Real Time Engineers Ltd.\r
+    FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
@@ -113,19 +113,25 @@ void vParTestSetLED( unsigned portBASE_TYPE uxLED, signed portBASE_TYPE xValue )
 \r
 void vParTestSetLEDFromISR( unsigned portBASE_TYPE uxLED, signed portBASE_TYPE xValue )\r
 {\r
-       if( uxLED < partstMAX_LEDS )\r
+unsigned portBASE_TYPE uxInterruptFlags;\r
+\r
+       uxInterruptFlags = portSET_INTERRUPT_MASK_FROM_ISR();\r
        {\r
-               if( xValue == pdTRUE )\r
-               {\r
-                       ulGPIOState &= ~( 1UL << uxLED );\r
-               }\r
-               else\r
+               if( uxLED < partstMAX_LEDS )\r
                {\r
-                       ulGPIOState |= ( 1UL << uxLED );\r
-               }\r
+                       if( xValue == pdTRUE )\r
+                       {\r
+                               ulGPIOState &= ~( 1UL << uxLED );\r
+                       }\r
+                       else\r
+                       {\r
+                               ulGPIOState |= ( 1UL << uxLED );\r
+                       }\r
 \r
-               MSS_GPIO_set_outputs( ulGPIOState );\r
+                       MSS_GPIO_set_outputs( ulGPIOState );\r
+               }\r
        }\r
+       portCLEAR_INTERRUPT_MASK_FROM_ISR( uxInterruptFlags );\r
 }\r
 /*-----------------------------------------------------------*/\r
 \r
@@ -153,3 +159,22 @@ void vParTestToggleLED( unsigned portBASE_TYPE uxLED )
 }\r
 /*-----------------------------------------------------------*/\r
 \r
+long lParTestGetLEDState( unsigned long ulLED )\r
+{\r
+long lReturn = pdFALSE;\r
+\r
+       if( ulLED < partstMAX_LEDS )\r
+       {\r
+               taskENTER_CRITICAL();\r
+               {\r
+                       if( ( ulGPIOState & ( 1UL << ulLED ) ) == 0UL )\r
+                       {\r
+                               lReturn = pdTRUE;\r
+                       }\r
+               }\r
+               taskEXIT_CRITICAL();\r
+       }\r
+\r
+       return lReturn;\r
+}\r
+/*-----------------------------------------------------------*/\r