]> git.sur5r.net Git - freertos/blobdiff - FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/main_full.c
Demo code only:
[freertos] / FreeRTOS / Demo / CORTEX_M4_ATSAM4S_Atmel_Studio / src / main_full.c
index c70f8da6a3e36ac8e9bfd6cdb3ba7de2223305a5..3f48aeefe90ff48b1e97f4274312074dc5d0165f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
 /*\r
-    FreeRTOS V7.6.0 - Copyright (C) 2013 Real Time Engineers Ltd. \r
+    FreeRTOS V8.1.1 - Copyright (C) 2014 Real Time Engineers Ltd.\r
     All rights reserved\r
 \r
     VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.\r
     All rights reserved\r
 \r
     VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.\r
     the terms of the GNU General Public License (version 2) as published by the\r
     Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception.\r
 \r
     the terms of the GNU General Public License (version 2) as published by the\r
     Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception.\r
 \r
-    >>! NOTE: The modification to the GPL is included to allow you to distribute\r
-    >>! a combined work that includes FreeRTOS without being obliged to provide\r
-    >>! the source code for proprietary components outside of the FreeRTOS\r
-    >>! kernel.\r
+    >>!   NOTE: The modification to the GPL is included to allow you to     !<<\r
+    >>!   distribute a combined work that includes FreeRTOS without being   !<<\r
+    >>!   obliged to provide the source code for proprietary components     !<<\r
+    >>!   outside of the FreeRTOS kernel.                                   !<<\r
 \r
     FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY\r
     WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\r
 \r
     FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY\r
     WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\r
 #include "partest.h"\r
 #include "comtest2.h"\r
 #include "QueueSet.h"\r
 #include "partest.h"\r
 #include "comtest2.h"\r
 #include "QueueSet.h"\r
+#include "IntQueue.h"\r
 \r
 /* Atmel library includes. */\r
 #include "asf.h"\r
 \r
 /* Atmel library includes. */\r
 #include "asf.h"\r
 \r
 /* The period after which the check timer will expire, in ms, provided no errors\r
 have been reported by any of the standard demo tasks.  ms are converted to the\r
 \r
 /* The period after which the check timer will expire, in ms, provided no errors\r
 have been reported by any of the standard demo tasks.  ms are converted to the\r
-equivalent in ticks using the portTICK_RATE_MS constant. */\r
-#define mainCHECK_TIMER_PERIOD_MS                      ( 3000UL / portTICK_RATE_MS )\r
+equivalent in ticks using the portTICK_PERIOD_MS constant. */\r
+#define mainCHECK_TIMER_PERIOD_MS                      ( 3000UL / portTICK_PERIOD_MS )\r
 \r
 /* The period at which the check timer will expire, in ms, if an error has been\r
 reported in one of the standard demo tasks.  ms are converted to the equivalent\r
 \r
 /* The period at which the check timer will expire, in ms, if an error has been\r
 reported in one of the standard demo tasks.  ms are converted to the equivalent\r
-in ticks using the portTICK_RATE_MS constant. */\r
-#define mainERROR_CHECK_TIMER_PERIOD_MS        ( 200UL / portTICK_RATE_MS )\r
+in ticks using the portTICK_PERIOD_MS constant. */\r
+#define mainERROR_CHECK_TIMER_PERIOD_MS        ( 200UL / portTICK_PERIOD_MS )\r
 \r
 /* The standard demo flash timers can be used to flash any number of LEDs.  In\r
 this case, because only three LEDs are available, and one is in use by the\r
 \r
 /* The standard demo flash timers can be used to flash any number of LEDs.  In\r
 this case, because only three LEDs are available, and one is in use by the\r
@@ -169,17 +170,18 @@ for the comtest, so the LED number is deliberately out of range. */
 /*\r
  * The check timer callback function, as described at the top of this file.\r
  */\r
 /*\r
  * The check timer callback function, as described at the top of this file.\r
  */\r
-static void prvCheckTimerCallback( xTimerHandle xTimer );\r
+static void prvCheckTimerCallback( TimerHandle_t xTimer );\r
 \r
 /*-----------------------------------------------------------*/\r
 \r
 void main_full( void )\r
 {\r
 \r
 /*-----------------------------------------------------------*/\r
 \r
 void main_full( void )\r
 {\r
-xTimerHandle xCheckTimer = NULL;\r
+TimerHandle_t xCheckTimer = NULL;\r
 \r
        /* Start all the other standard demo/test tasks.  The have not particular\r
        functionality, but do demonstrate how to use the FreeRTOS API and test the\r
        kernel port. */\r
 \r
        /* Start all the other standard demo/test tasks.  The have not particular\r
        functionality, but do demonstrate how to use the FreeRTOS API and test the\r
        kernel port. */\r
+       vStartInterruptQueueTasks();\r
        vStartIntegerMathTasks( tskIDLE_PRIORITY );\r
        vStartDynamicPriorityTasks();\r
        vStartBlockingQueueTasks( mainBLOCK_Q_PRIORITY );\r
        vStartIntegerMathTasks( tskIDLE_PRIORITY );\r
        vStartDynamicPriorityTasks();\r
        vStartBlockingQueueTasks( mainBLOCK_Q_PRIORITY );\r
@@ -195,11 +197,11 @@ xTimerHandle xCheckTimer = NULL;
 \r
        /* Create the software timer that performs the 'check' functionality,\r
        as described at the top of this file. */\r
 \r
        /* Create the software timer that performs the 'check' functionality,\r
        as described at the top of this file. */\r
-       xCheckTimer = xTimerCreate( ( const signed char * ) "CheckTimer",/* A text name, purely to help debugging. */\r
-                                                               ( mainCHECK_TIMER_PERIOD_MS ),          /* The timer period, in this case 3000ms (3s). */\r
-                                                               pdTRUE,                                                         /* This is an auto-reload timer, so xAutoReload is set to pdTRUE. */\r
-                                                               ( void * ) 0,                                           /* The ID is not used, so can be set to anything. */\r
-                                                               prvCheckTimerCallback                           /* The callback function that inspects the status of all the other tasks. */\r
+       xCheckTimer = xTimerCreate( "CheckTimer",                                       /* A text name, purely to help debugging. */\r
+                                                               ( mainCHECK_TIMER_PERIOD_MS ),  /* The timer period, in this case 3000ms (3s). */\r
+                                                               pdTRUE,                                                 /* This is an auto-reload timer, so xAutoReload is set to pdTRUE. */\r
+                                                               ( void * ) 0,                                   /* The ID is not used, so can be set to anything. */\r
+                                                               prvCheckTimerCallback                   /* The callback function that inspects the status of all the other tasks. */\r
                                                          );\r
 \r
        if( xCheckTimer != NULL )\r
                                                          );\r
 \r
        if( xCheckTimer != NULL )\r
@@ -224,7 +226,7 @@ xTimerHandle xCheckTimer = NULL;
 }\r
 /*-----------------------------------------------------------*/\r
 \r
 }\r
 /*-----------------------------------------------------------*/\r
 \r
-static void prvCheckTimerCallback( xTimerHandle xTimer )\r
+static void prvCheckTimerCallback( TimerHandle_t xTimer )\r
 {\r
 static long lChangedTimerPeriodAlready = pdFALSE;\r
 unsigned long ulErrorFound = pdFALSE;\r
 {\r
 static long lChangedTimerPeriodAlready = pdFALSE;\r
 unsigned long ulErrorFound = pdFALSE;\r
@@ -232,6 +234,11 @@ unsigned long ulErrorFound = pdFALSE;
        /* Check all the demo tasks (other than the flash tasks) to ensure\r
        they are all still running, and that none have detected an error. */\r
 \r
        /* Check all the demo tasks (other than the flash tasks) to ensure\r
        they are all still running, and that none have detected an error. */\r
 \r
+       if( xAreIntQueueTasksStillRunning() != pdTRUE )\r
+       {\r
+               ulErrorFound = pdTRUE;\r
+       }\r
+\r
        if( xAreIntegerMathsTaskStillRunning() != pdTRUE )\r
        {\r
                ulErrorFound = pdTRUE;\r
        if( xAreIntegerMathsTaskStillRunning() != pdTRUE )\r
        {\r
                ulErrorFound = pdTRUE;\r