]> git.sur5r.net Git - freertos/commitdiff
Updates prior to release of V4.4.0 due to testing. V4.4.0
authorRichardBarry <RichardBarry@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>
Mon, 30 Jul 2007 20:48:12 +0000 (20:48 +0000)
committerRichardBarry <RichardBarry@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>
Mon, 30 Jul 2007 20:48:12 +0000 (20:48 +0000)
git-svn-id: https://svn.code.sf.net/p/freertos/code/trunk@101 1d2547de-c912-0410-9cb9-b8ca96c0e9e2

Demo/AVR32_UC3/main.c
Demo/Common/Minimal/death.c

index 4402c4fa390a1aae34196f5c18ceec2f9c048d86..9427ee43ace2f45e2f2974a8012e4cda929d4232 100644 (file)
@@ -274,12 +274,6 @@ portBASE_TYPE bSuicidalTask = 0;
                /* Delay until it is time to execute again. */\r
                vTaskDelay( mainCHECK_PERIOD );\r
 \r
-               /* Delete the dynamically created task. */\r
-               if( xCreatedTask != mainNO_TASK )\r
-               {\r
-                       vTaskDelete( xCreatedTask );\r
-               }\r
-\r
                /* Perform a bit of 32bit maths to ensure the registers used by the\r
                integer tasks get some exercise. The result here is not important -\r
                see the demo application documentation for more info. */\r
@@ -300,6 +294,12 @@ portBASE_TYPE bSuicidalTask = 0;
                        /* Toggle the LED if everything is okay. */\r
                        vParTestToggleLED( mainCHECK_TASK_LED );\r
                }\r
+\r
+               /* Delete the dynamically created task. */\r
+               if( xCreatedTask != mainNO_TASK )\r
+               {\r
+                       vTaskDelete( xCreatedTask );\r
+               }\r
        }\r
 }\r
 /*-----------------------------------------------------------*/\r
index de9f46b19094652a0e4c974758cac1f0ef0d0077..d59ffec1105ccd7f381e224fc8b9b9291fa3cc4f 100644 (file)
 \r
 /**\r
  * Create a single persistent task which periodically dynamically creates another\r
- * four tasks.  The original task is called the creator task, the four tasks it\r
+ * two tasks.  The original task is called the creator task, the two tasks it\r
  * creates are called suicidal tasks.\r
  *\r
- * Two of the created suicidal tasks kill one other suicidal task before killing\r
- * themselves - leaving just the original task remaining.\r
+ * One of the created suicidal tasks kill one other suicidal task before killing\r
+ * itself - leaving just the original task remaining.\r
  *\r
  * The creator task must be spawned after all of the other demo application tasks\r
  * as it keeps a check on the number of tasks under the scheduler control.  The\r
@@ -75,7 +75,7 @@ Changes from V3.1.0
 /* Demo program include files. */\r
 #include "death.h"\r
 \r
-#define deathSTACK_SIZE                ( configMINIMAL_STACK_SIZE + 24 )\r
+#define deathSTACK_SIZE                ( configMINIMAL_STACK_SIZE + 60 )\r
 \r
 /* The task originally created which is responsible for periodically dynamically\r
 creating another four tasks. */\r
@@ -96,11 +96,11 @@ static volatile unsigned portBASE_TYPE uxTasksRunningAtStart = 0;
 /* Tasks are deleted by the idle task.  Under heavy load the idle task might\r
 not get much processing time, so it would be legitimate for several tasks to\r
 remain undeleted for a short period. */\r
-static const unsigned portBASE_TYPE uxMaxNumberOfExtraTasksRunning = 4;\r
+static const unsigned portBASE_TYPE uxMaxNumberOfExtraTasksRunning = 2;\r
 \r
-/* Used to store a handle to the tasks that should be killed by a suicidal task,\r
+/* Used to store a handle to the task that should be killed by a suicidal task,\r
 before it kills itself. */\r
-xTaskHandle xCreatedTask1, xCreatedTask2;\r
+xTaskHandle xCreatedTask;\r
 \r
 /*-----------------------------------------------------------*/\r
 \r
@@ -158,11 +158,10 @@ const portTickType xDelay = ( portTickType ) 200 / portTICK_RATE_MS;
                {\r
                        /* Make sure the other task has a go before we delete it. */\r
                        vTaskDelay( ( portTickType ) 0 );\r
+\r
                        /* Kill the other task that was created by vCreateTasks(). */\r
-                       if( xTaskToKill != NULL )\r
-                       {\r
-                               vTaskDelete( xTaskToKill );\r
-                       }\r
+                       vTaskDelete( xTaskToKill );\r
+\r
                        /* Kill ourselves. */\r
                        vTaskDelete( NULL );\r
                }\r
@@ -183,14 +182,10 @@ unsigned portBASE_TYPE uxPriority;
                /* Just loop round, delaying then creating the four suicidal tasks. */\r
                vTaskDelay( xDelay );\r
 \r
-               xCreatedTask1 = NULL;\r
-               xCreatedTask2 = NULL;\r
-\r
-               xTaskCreate( vSuicidalTask, ( signed portCHAR * ) "SUICID1", deathSTACK_SIZE, NULL, uxPriority, &xCreatedTask1 );\r
-               xTaskCreate( vSuicidalTask, ( signed portCHAR * ) "SUICID2", deathSTACK_SIZE, &xCreatedTask1, uxPriority, NULL );\r
+               xCreatedTask = NULL;\r
 \r
-               xTaskCreate( vSuicidalTask, ( signed portCHAR * ) "SUICID1", deathSTACK_SIZE, NULL, uxPriority, &xCreatedTask2 );\r
-               xTaskCreate( vSuicidalTask, ( signed portCHAR * ) "SUICID2", deathSTACK_SIZE, &xCreatedTask2, uxPriority, NULL );\r
+               xTaskCreate( vSuicidalTask, ( signed portCHAR * ) "SUICID1", configMINIMAL_STACK_SIZE, NULL, uxPriority, &xCreatedTask );\r
+               xTaskCreate( vSuicidalTask, ( signed portCHAR * ) "SUICID2", configMINIMAL_STACK_SIZE, &xCreatedTask, uxPriority, NULL );\r
 \r
                ++usCreationCount;\r
        }\r