]> git.sur5r.net Git - freertos/blobdiff - Demo/AVR32_UC3/main.c
Ready for V5.1.1 release.
[freertos] / Demo / AVR32_UC3 / main.c
index 7bc3d022cf4446b30bb0cf87807acbbd8ee252dc..f1bffebbccfc818e99c4e1661a7c261a03fbcacb 100644 (file)
@@ -1,5 +1,3 @@
-/* This source file is part of the ATMEL FREERTOS-0.9.0 Release */\r
-\r
 /*This file has been prepared for Doxygen automatic documentation generation.*/\r
 /*! \file *********************************************************************\r
  *\r
  * - AppNote:\r
  *\r
  * \author               Atmel Corporation: http://www.atmel.com \n\r
- *                       Support email: avr32@atmel.com\r
+ *                       Support and FAQ: http://support.atmel.no/\r
  *\r
  *****************************************************************************/\r
 \r
 /*\r
-       FreeRTOS.org V4.3.1 - Copyright (C) 2003-2007 Richard Barry.\r
+       FreeRTOS.org V5.1.1 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
        of http://www.FreeRTOS.org for full details of how and when the exception\r
        can be applied.\r
 \r
-       ***************************************************************************\r
-       See http://www.FreeRTOS.org for documentation, latest information, license\r
-       and contact details.  Please ensure to read the configuration and relevant\r
-       port sections of the online documentation.\r
+    ***************************************************************************\r
+    ***************************************************************************\r
+    *                                                                         *\r
+    * SAVE TIME AND MONEY!  We can port FreeRTOS.org to your own hardware,    *\r
+    * and even write all or part of your application on your behalf.          *\r
+    * See http://www.OpenRTOS.com for details of the services we provide to   *\r
+    * expedite your project.                                                  *\r
+    *                                                                         *\r
+    ***************************************************************************\r
+    ***************************************************************************\r
+\r
+       Please ensure to read the configuration and relevant port sections of the\r
+       online documentation.\r
+\r
+       http://www.FreeRTOS.org - Documentation, latest information, license and \r
+       contact details.\r
 \r
-       Also see http://www.SafeRTOS.com for an IEC 61508 compliant version along\r
-       with commercial development and support options.\r
-       ***************************************************************************\r
+       http://www.SafeRTOS.com - A version that is certified for use in safety \r
+       critical systems.\r
+\r
+       http://www.OpenRTOS.com - Commercial support, development, porting, \r
+       licensing and training services.\r
 */\r
 \r
 \r
@@ -162,6 +174,12 @@ static portBASE_TYPE prvCheckOtherTasksAreStillRunning( void );
  */\r
 static void vMemCheckTask( void *pvParameters );\r
 \r
+/*\r
+ * Called by the check task following the detection of an error to set the\r
+ * LEDs into a state that shows an error has beeen found.\r
+ */\r
+static void prvIndicateError( void );\r
+\r
 /*-----------------------------------------------------------*/\r
 \r
 int main( void )\r
@@ -262,11 +280,7 @@ portBASE_TYPE bSuicidalTask = 0;
                        /* Could not create the task - we have probably run out of heap.\r
                        Don't go any further and flash the LED faster to provide visual\r
                        feedback of the error. */\r
-                       for(;;)\r
-                       {\r
-                               vParTestToggleLED( mainCHECK_TASK_LED );\r
-                               vTaskDelay( mainERROR_FLASH_RATE );\r
-                       }\r
+                       prvIndicateError();\r
                }\r
 \r
                /* Delay until it is time to execute again. */\r
@@ -291,12 +305,7 @@ portBASE_TYPE bSuicidalTask = 0;
                        /* An error has occurred in one of the tasks.\r
                        Don't go any further and flash the LED faster to give visual\r
                        feedback of the error. */\r
-                       vParTestSetLED(mainERROR_LED,pdTRUE);\r
-                       for(;;)\r
-                       {\r
-                               vParTestToggleLED( mainCHECK_TASK_LED );\r
-                               vTaskDelay( mainERROR_FLASH_RATE );\r
-                       }\r
+                       prvIndicateError();\r
                }\r
                else\r
                {\r
@@ -454,3 +463,26 @@ static portLONG lErrorOccurred = pdFALSE;
                xTaskResumeAll();\r
        }\r
 }\r
+/*-----------------------------------------------------------*/\r
+\r
+static void prvIndicateError( void )\r
+{\r
+       /* The check task has found an error in one of the other tasks.\r
+       Set the LEDs to a state that indicates this. */\r
+       vParTestSetLED(mainERROR_LED,pdTRUE);\r
+\r
+       for(;;)\r
+       {\r
+               #if( BOARD==EVK1100 )\r
+                       vParTestToggleLED( mainCHECK_TASK_LED );\r
+                       vTaskDelay( mainERROR_FLASH_RATE );\r
+               #endif\r
+               #if ( BOARD==EVK1101 )\r
+                       vParTestSetLED( 0, pdTRUE );\r
+                       vParTestSetLED( 1, pdTRUE );\r
+                       vParTestSetLED( 2, pdTRUE );\r
+                       vParTestSetLED( 3, pdTRUE );\r
+               #endif\r
+       }\r
+}\r
+\r