From c3a33e5e7ccca1990d2ae0b06eefa5b2b32b7006 Mon Sep 17 00:00:00 2001
From: Richard Barry <ribarry@amazon.com>
Date: Mon, 22 Sep 2008 13:43:07 +0000
Subject: [PATCH] Improve example code for xTaskCreate().

---
 Source/include/task.h | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/Source/include/task.h b/Source/include/task.h
index 60193cfb73..54e7e3c3e5 100644
--- a/Source/include/task.h
+++ b/Source/include/task.h
@@ -215,10 +215,13 @@ typedef struct xTIME_OUT
  // Function that creates a task.
  void vOtherFunction( void )
  {
- unsigned char ucParameterToPass;
+ static unsigned char ucParameterToPass;
  xTaskHandle xHandle;
 		
-     // Create the task, storing the handle.
+     // Create the task, storing the handle.  Note that the passed parameter ucParameterToPass
+     // must exist for the lifetime of the task, so in this case is declared static.  If it was just an
+     // an automatic stack variable it might no longer exist, or at least have been corrupted, by the time
+     // the new time attempts to access it.
      xTaskCreate( vTaskCode, "NAME", STACK_SIZE, &ucParameterToPass, tskIDLE_PRIORITY, &xHandle );
 		
      // Use the handle to delete the task.