]> git.sur5r.net Git - freertos/commitdiff
Update to V5.0.2
authorrichardbarry <richardbarry@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>
Fri, 30 May 2008 15:44:17 +0000 (15:44 +0000)
committerrichardbarry <richardbarry@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>
Fri, 30 May 2008 15:44:17 +0000 (15:44 +0000)
git-svn-id: https://svn.code.sf.net/p/freertos/code/trunk@394 1d2547de-c912-0410-9cb9-b8ca96c0e9e2

109 files changed:
Demo/ARM7_STR75x_GCC/FreeRTOSConfig.h
Demo/ARM7_STR75x_GCC/ParTest/ParTest.c
Demo/ARM7_STR75x_GCC/main.c
Demo/ARM7_STR75x_GCC/serial/serial.c
Demo/ARM7_STR75x_GCC/serial/serialISR.c
Demo/ARM7_STR75x_IAR/FreeRTOSConfig.h
Demo/ARM7_STR75x_IAR/ParTest/ParTest.c
Demo/ARM7_STR75x_IAR/main.c
Demo/ARM7_STR75x_IAR/serial/serial.c
Demo/ARM9_STR91X_IAR/FreeRTOSConfig.h
Demo/ARM9_STR91X_IAR/ParTest/ParTest.c
Demo/ARM9_STR91X_IAR/main.c
Demo/ARM9_STR91X_IAR/serial/serial.c
Demo/ARM9_STR91X_IAR/webserver/uIP_Task.c
Demo/AVR32_UC3/main.c
Demo/AVR_ATMega323_IAR/FreeRTOSConfig.h
Demo/AVR_ATMega323_IAR/ParTest/ParTest.c
Demo/AVR_ATMega323_IAR/main.c
Demo/AVR_ATMega323_IAR/regtest.c
Demo/AVR_ATMega323_IAR/regtest.h
Demo/AVR_ATMega323_IAR/serial/serial.c
Demo/AVR_ATMega323_WinAVR/FreeRTOSConfig.h
Demo/AVR_ATMega323_WinAVR/ParTest/ParTest.c
Demo/AVR_ATMega323_WinAVR/main.c
Demo/AVR_ATMega323_WinAVR/regtest.c
Demo/AVR_ATMega323_WinAVR/regtest.h
Demo/AVR_ATMega323_WinAVR/serial/serial.c
Demo/CORTEX_LM3S102_GCC/Demo1/FreeRTOSConfig.h
Demo/CORTEX_LM3S102_GCC/Demo1/main.c
Demo/CORTEX_LM3S102_GCC/Demo2/FreeRTOSConfig.h
Demo/CORTEX_LM3S102_GCC/Demo2/main.c
Demo/CORTEX_LM3S102_GCC/FreeRTOSConfig.h
Demo/CORTEX_LM3S102_GCC/ParTest/ParTest.c
Demo/CORTEX_LM3S102_GCC/main.c
Demo/CORTEX_LM3S102_KEIL/Demo1/FreeRTOSConfig.h
Demo/CORTEX_LM3S102_KEIL/Demo1/main.c
Demo/CORTEX_LM3S102_KEIL/Demo2/FreeRTOSConfig.h
Demo/CORTEX_LM3S102_KEIL/Demo2/main.c
Demo/CORTEX_LM3S102_KEIL/FreeRTOSConfig.h
Demo/CORTEX_LM3S102_KEIL/ParTest/ParTest.c
Demo/CORTEX_LM3S102_KEIL/main.c
Demo/CORTEX_LM3S102_Rowley/Demo1/FreeRTOSConfig.h
Demo/CORTEX_LM3S102_Rowley/Demo1/ParTest.c
Demo/CORTEX_LM3S102_Rowley/Demo1/main.c
Demo/CORTEX_LM3S102_Rowley/Demo2/FreeRTOSConfig.h
Demo/CORTEX_LM3S102_Rowley/Demo2/ParTest.c
Demo/CORTEX_LM3S102_Rowley/Demo2/main.c
Demo/CORTEX_LM3S102_Rowley/Demo3/FreeRTOSConfig.h
Demo/CORTEX_LM3S102_Rowley/Demo3/ParTest.c
Demo/CORTEX_LM3S102_Rowley/Demo3/main.c
Demo/Common/Full/BlockQ.c
Demo/Common/Full/PollQ.c
Demo/Common/Full/comtest.c
Demo/Common/Full/death.c
Demo/Common/Full/dynamic.c
Demo/Common/Full/events.c
Demo/Common/Full/flash.c
Demo/Common/Full/flop.c
Demo/Common/Full/integer.c
Demo/Common/Full/print.c
Demo/Common/Full/semtest.c
Demo/Common/Minimal/AltBlckQ.c
Demo/Common/Minimal/AltBlock.c
Demo/Common/Minimal/AltPollQ.c
Demo/Common/Minimal/AltQTest.c
Demo/Common/Minimal/BlockQ.c
Demo/Common/Minimal/GenQTest.c
Demo/Common/Minimal/IntQueue.c
Demo/Common/Minimal/PollQ.c
Demo/Common/Minimal/QPeek.c
Demo/Common/Minimal/blocktim.c
Demo/Common/Minimal/comtest.c
Demo/Common/Minimal/countsem.c
Demo/Common/Minimal/crflash.c
Demo/Common/Minimal/crhook.c
Demo/Common/Minimal/death.c
Demo/Common/Minimal/dynamic.c
Demo/Common/Minimal/flash.c
Demo/Common/Minimal/flop.c
Demo/Common/Minimal/integer.c
Demo/Common/Minimal/recmutex.c
Demo/Common/Minimal/semtest.c
Demo/Common/include/AltBlckQ.h
Demo/Common/include/AltBlock.h
Demo/Common/include/AltPollQ.h
Demo/Common/include/AltQTest.h
Demo/Common/include/BlockQ.h
Demo/Common/include/GenQTest.h
Demo/Common/include/IntQueue.h
Demo/Common/include/PollQ.h
Demo/Common/include/QPeek.h
Demo/Common/include/blocktim.h
Demo/Common/include/comtest.h
Demo/Common/include/comtest2.h
Demo/Common/include/countsem.h
Demo/Common/include/crflash.h
Demo/Common/include/crhook.h
Demo/Common/include/death.h
Demo/Common/include/dynamic.h
Demo/Common/include/fileIO.h
Demo/Common/include/flash.h
Demo/Common/include/flop.h
Demo/Common/include/integer.h
Demo/Common/include/mevents.h
Demo/Common/include/partest.h
Demo/Common/include/print.h
Demo/Common/include/recmutex.h
Demo/Common/include/semtest.h
Demo/Common/include/serial.h

index 2b4289daa98c303a4cb6b8ad4fbfccb5f82ad9f2..bbd9e2df1288c6cebcb7cdf11e4b8c0e457cd4f2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 98889734a04b8137a2e82536849a27112e31b3a3..b10a3d4aeb7afaba99e18d6a95c0bbeb4c166f31 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 5c344e85879f70bf903dbcdfb55cd15b1a50e8df..a969175d5b3fccffcf635eaf440f7ee734ba79df 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 33e1e8157714fa9914aa323cac19eec30fa87494..33759da67ce6b3578e0ef66ff0e4ee4496b6ac93 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index b1618cc577ddf5c721642ede969178ffcbb139c9..e780563309d0a2d22408a9d36e30ab3216e4db43 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 214cb85688bf327f5f4b28056bd232170f51a52d..78d1be0d978283739751cc162fa4d239ea3fbee6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 98889734a04b8137a2e82536849a27112e31b3a3..b10a3d4aeb7afaba99e18d6a95c0bbeb4c166f31 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index ac63dd9a0699c7f45b8c08c45fe7afdb3bea0f32..e253e5234970870b641ac162015163c7b3f5c76b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index a7b576da9be69373707599ae215b03f24bedbef8..22fec7a91ddeda8a4a4620bc439678d54a6099f8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 77e984a7c732531fc8e9feca49463ba29a10a128..d1e604db8be6d0ebcfeb895b8add164a0f4dc696 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS distribution.\r
 \r
index 246295423a4415caee5eb8236d93b3c052482f73..e3eb21ea3a2379d520849f27ae858327026278a7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS distribution.\r
 \r
index b116a742186c073eaf5bf3401abae91e65c97270..896a6790a0829464a72f862c89b79faed1639106 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS distribution.\r
 \r
index db4099e3d7c55c26325c4e76d80c32028cc9d1a3..31f43b508e8b1fbb01551fee61ec8867775e5f13 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS distribution.\r
 \r
index 2a6299e68911472943d49c27a55a24f450ab1ead..8057f3546fdb70081a1c29c433def96981e5735e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index cfe21ded9e5ecce8044b0f2c1ce689215057c7ae..26c85be419c2f4c7baa38d4f1668dae22516659f 100644 (file)
@@ -30,7 +30,7 @@
  *****************************************************************************/\r
 \r
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index aea72abf163b9b9e98e10700adea626ccf5bc845..c9e242a3bef8a159a8f2d697e0560d7efa6eb9dc 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 539084ad734d67c70834c6e15b468ab2f74df061..6664020c9a4d9e7bbb7ac983545ab85b9b56c5c0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 02df2a142e7a2ce36e74829734d5baf876b0c007..297802b99361f46bf5d0475db44b9a58014dc9fb 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index ce93a155b427ef2442f2fe1d051ce36a2475b9a6..999ed5cc4b8ddfbbcc57e5e786974741893795f0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index c1f5a2f08bbc82cc7ef86c659ec117552357531e..163522e4ed07d20fa3f75f74bf2b8633b154a81d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index dd3e7ca78d634f24883a6f3dfd97b46ab9025a2f..258964905492bc1974a8de1a6c338ddf3577759c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 62e8633008f32903e982fa38d52868973a250788..f948ab9f168fe7ebf345cd182f85c2807126c918 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 539084ad734d67c70834c6e15b468ab2f74df061..6664020c9a4d9e7bbb7ac983545ab85b9b56c5c0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index b3a5cf1a8f21de7f99568679910939ad9fa36de9..dace5ee81e50208bf17ee21e0cd892d344182278 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index d965e062cbf1256d6a1e5efd58123a5a3634ef6a..c7133e5e6b14ca75cd3c129dfc34cb94021e4b95 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index c1f5a2f08bbc82cc7ef86c659ec117552357531e..163522e4ed07d20fa3f75f74bf2b8633b154a81d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 8c04cd042bacbb24c4ace7f22738ba754917594d..f62411e1d84488a39aa0f5e43d001ee15ae51c70 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 589c390e5c01ca718c864d29a5fff23c3305566a..6d31e8af37085e955aaef26bd7fd44c9f62ea2f4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 868d05c24bf4a2b5fc0de8121f019b1b8a12f640..1dd9cf3df8d767df98ca218bd330d0ae0076b8cf 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 9a86d9933c542a280c8c15c752e6880ee732cc71..0e36a8755a955ef0fe99922acd08cfc5914401a1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index b520655a40c16aef45e7d373dd2b4b23563eac67..2394524e8be9d2f8206895f938e5d38408d5eb72 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 589c390e5c01ca718c864d29a5fff23c3305566a..6d31e8af37085e955aaef26bd7fd44c9f62ea2f4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 684a2e02e30801d06a5776ccb88ec44d4e459f1c..46db7e0a533e2543ceeedc55843fcb4d69d6e2ec 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 868d05c24bf4a2b5fc0de8121f019b1b8a12f640..1dd9cf3df8d767df98ca218bd330d0ae0076b8cf 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 589c390e5c01ca718c864d29a5fff23c3305566a..6d31e8af37085e955aaef26bd7fd44c9f62ea2f4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 8d4a7680afaf1eb3615dba078713cae854b5645e..a5f5d6eb4cbc68baef08bd49ac901fc2bc6bb954 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 9a86d9933c542a280c8c15c752e6880ee732cc71..0e36a8755a955ef0fe99922acd08cfc5914401a1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index e9107c9ead227f668a66ba2c60031049327a7de5..be090ddd5cc64ef503c9f59ffbf85fe6af1a2ad9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 5faf5cc36923d83a36046f7c2721f9c2ab621766..d4879a3599aca8520823ab644cb85c98bdac3221 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 684a2e02e30801d06a5776ccb88ec44d4e459f1c..46db7e0a533e2543ceeedc55843fcb4d69d6e2ec 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 8d4a7680afaf1eb3615dba078713cae854b5645e..a5f5d6eb4cbc68baef08bd49ac901fc2bc6bb954 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 589c390e5c01ca718c864d29a5fff23c3305566a..6d31e8af37085e955aaef26bd7fd44c9f62ea2f4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 684a2e02e30801d06a5776ccb88ec44d4e459f1c..46db7e0a533e2543ceeedc55843fcb4d69d6e2ec 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 9ba1077059297e89fb4b0c0383bed9df069c7a14..df65a559005693f22aae0518b54f7c49092ad9aa 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 9a86d9933c542a280c8c15c752e6880ee732cc71..0e36a8755a955ef0fe99922acd08cfc5914401a1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 684a2e02e30801d06a5776ccb88ec44d4e459f1c..46db7e0a533e2543ceeedc55843fcb4d69d6e2ec 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 4039e249e51192c9d73ecd5a247998d5e9a06ee5..49d6612c03671a36a652b69afeb9bd84a8cd4762 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 837b9e8dd1a2868e0e1a1f5f9f91ebee89f2e2d6..b95e2ab09a7591e68451c8eccc71c0327734dc06 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index a6716bbeca7eb97580078bbd85ba3f059b4c0b88..9868e83f67d36d383d08e4b311e05b6a67fb5d7a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 9658cfde135c145c16eb6b210f74c0da7d83fe51..ff75a4c62501f80ca7c71df197023acd8cade63e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 7ac251dab2a6132ebf440bc8f7a893cbe504012a..6b641c278731883aa1ad2440b4413b0a15939770 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 8e6a935a03623b092e16ab3d675ad78af256f596..be0f1764e1e527afaa1e08a6c612375454c191ac 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index da1a1b6458fe010b9d3852844a95d5524ded83e7..67eb5e4078a895fc2dd94f6eb1a1694806761c11 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index c3c4ba04a00ff6308085b268582ff0157559612e..33cd6a290c174fd95d1173b34c9ead0b6d4f3881 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 257fe652b73be59549d2deb610fb2126e922bc1b..9e370caffa99ae51c91ebaadae4da22907a46762 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index b22b618579e2df2e319e0ce28950f02795f67009..8c67e1bbc97ffdcb7b10b0219d9c69b83d2f29cf 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index e333608a196391259623d07287022a17e6d2ac59..2d03d7a58de37b09edd1ac8d03b381fa343a8192 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index ec012a0faca6fd5f934c6d45c7c09c8a3b035025..9aae6a48351cc1806c568150e6615274bbd3241e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 3dd6212fb5f7139c421beee45d18f59c99dcb5a1..e621c4aaea80581c2a0bfacf2d0b36e2e4124b66 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index f973e02b8422eac2fb2bfc5d676772ad968b1732..a9c36752ba2a625b35f5b9bd258c3a70dfebdffc 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index d7a169dc6451da533acc34ab655d9257bb9c5e5a..77fed3ce50dab8ab28d000821a8f1d9bad8116d9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 7c7753a4ef6a15907bd5e8c763669dc921f71b4f..e8a17cb6f54fdd336b9b494dfe8202076bed5e68 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 580700ec8cb8e91dea2fbbbd56bd1d0f7b705f56..14a517f039f6844e578be8e4ae73b6c5878428e3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 005393dee6b34e6e0bba6d5fcb8ceda31e623a1d..18589b7b75f31305e1c052f367ca7baac5b6169a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 2ed5002a187e80bb028219e170606eb62af89c7e..b5de90b36888dc40d0e14bbadf08b6211c0b04a8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 99f27dfbfb0fcd3507454dccccd4aa7e7f74b0a1..6a3d0c35a1c01626b0b3cbb507119c64e9bdfb3c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index dad8bcfc97b2e8512ff4a2619cfaf234afe269bd..f7599dcbb202f0b8912513986f5e81aa99a4078c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 7647ec0f45c38f15dc282f8e607411bc5632e429..fc6925d8426d08af53f142252c8ef77ac3d6c3fb 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
@@ -97,9 +97,9 @@ coverage. */
 /* Each task and interrupt is given a unique identifier.  This value is used to \r
 identify which task sent or received each value.  The identifier is also used \r
 to distinguish between two tasks that are running the same task function. */\r
-#define intqHIGH_PRIROITY_TASK1        ( ( unsigned portBASE_TYPE ) 1 )\r
-#define intqHIGH_PRIROITY_TASK2        ( ( unsigned portBASE_TYPE ) 2 )\r
-#define intqLOW_PRIROITY_TASK  ( ( unsigned portBASE_TYPE ) 3 )\r
+#define intqHIGH_PRIORITY_TASK1        ( ( unsigned portBASE_TYPE ) 1 )\r
+#define intqHIGH_PRIORITY_TASK2        ( ( unsigned portBASE_TYPE ) 2 )\r
+#define intqLOW_PRIORITY_TASK  ( ( unsigned portBASE_TYPE ) 3 )\r
 #define intqFIRST_INTERRUPT            ( ( unsigned portBASE_TYPE ) 4 )\r
 #define intqSECOND_INTERRUPT   ( ( unsigned portBASE_TYPE ) 5 )\r
 #define intqQUEUE_LENGTH               ( ( unsigned portBASE_TYPE ) 10 )\r
@@ -207,11 +207,11 @@ static void prvQueueAccessLogError( unsigned portBASE_TYPE uxLine );
 void vStartInterruptQueueTasks( void )\r
 {\r
        /* Start the test tasks. */\r
-       xTaskCreate( prvHigherPriorityNormallyEmptyTask, ( signed portCHAR * ) "H1QRx", configMINIMAL_STACK_SIZE, ( void * ) intqHIGH_PRIROITY_TASK1, intqHIGHER_PRIORITY, &xHighPriorityNormallyEmptyTask1 );\r
-       xTaskCreate( prvHigherPriorityNormallyEmptyTask, ( signed portCHAR * ) "H2QRx", configMINIMAL_STACK_SIZE, ( void * ) intqHIGH_PRIROITY_TASK2, intqHIGHER_PRIORITY, &xHighPriorityNormallyEmptyTask2 );\r
+       xTaskCreate( prvHigherPriorityNormallyEmptyTask, ( signed portCHAR * ) "H1QRx", configMINIMAL_STACK_SIZE, ( void * ) intqHIGH_PRIORITY_TASK1, intqHIGHER_PRIORITY, &xHighPriorityNormallyEmptyTask1 );\r
+       xTaskCreate( prvHigherPriorityNormallyEmptyTask, ( signed portCHAR * ) "H2QRx", configMINIMAL_STACK_SIZE, ( void * ) intqHIGH_PRIORITY_TASK2, intqHIGHER_PRIORITY, &xHighPriorityNormallyEmptyTask2 );\r
        xTaskCreate( prvLowerPriorityNormallyEmptyTask, ( signed portCHAR * ) "LQRx", configMINIMAL_STACK_SIZE, NULL, intqLOWER_PRIORITY, NULL );\r
-       xTaskCreate( prv1stHigherPriorityNormallyFullTask, ( signed portCHAR * ) "H1QTx", configMINIMAL_STACK_SIZE, ( void * ) intqHIGH_PRIROITY_TASK1, intqHIGHER_PRIORITY, &xHighPriorityNormallyFullTask1 );\r
-       xTaskCreate( prv2ndHigherPriorityNormallyFullTask, ( signed portCHAR * ) "H1QTx", configMINIMAL_STACK_SIZE, ( void * ) intqHIGH_PRIROITY_TASK2, intqHIGHER_PRIORITY, &xHighPriorityNormallyFullTask2 );\r
+       xTaskCreate( prv1stHigherPriorityNormallyFullTask, ( signed portCHAR * ) "H1QTx", configMINIMAL_STACK_SIZE, ( void * ) intqHIGH_PRIORITY_TASK1, intqHIGHER_PRIORITY, &xHighPriorityNormallyFullTask1 );\r
+       xTaskCreate( prv2ndHigherPriorityNormallyFullTask, ( signed portCHAR * ) "H1QTx", configMINIMAL_STACK_SIZE, ( void * ) intqHIGH_PRIORITY_TASK2, intqHIGHER_PRIORITY, &xHighPriorityNormallyFullTask2 );\r
        xTaskCreate( prvLowerPriorityNormallyFullTask, ( signed portCHAR * ) "LQRx", configMINIMAL_STACK_SIZE, NULL, intqLOWER_PRIORITY, NULL );\r
 \r
        /* Create the queues that are accessed by multiple tasks and multiple \r
@@ -280,7 +280,7 @@ unsigned portBASE_TYPE uxRxed, ux, uxTask1, uxTask2;
        /* The timer should not be started until after the scheduler has started. \r
        More than one task is running this code so we check the parameter value\r
        to determine which task should start the timer. */\r
-       if( ( unsigned portBASE_TYPE ) pvParameters == intqHIGH_PRIROITY_TASK1 )\r
+       if( ( unsigned portBASE_TYPE ) pvParameters == intqHIGH_PRIORITY_TASK1 )\r
        {\r
                vInitialiseTimerForIntQueueTest();\r
        }\r
@@ -303,7 +303,7 @@ unsigned portBASE_TYPE uxRxed, ux, uxTask1, uxTask2;
                /* Ensure the other task running this code gets a chance to execute. */\r
                taskYIELD();\r
                \r
-               if( ( unsigned portBASE_TYPE ) pvParameters == intqHIGH_PRIROITY_TASK1 )\r
+               if( ( unsigned portBASE_TYPE ) pvParameters == intqHIGH_PRIORITY_TASK1 )\r
                {\r
                        /* Have we received all the expected values? */\r
                        if( uxValueForNormallyEmptyQueue > ( intqNUM_VALUES_TO_LOG + intqVALUE_OVERRUN ) )\r
@@ -324,12 +324,12 @@ unsigned portBASE_TYPE uxRxed, ux, uxTask1, uxTask2;
                                        }\r
                                        else\r
                                        {\r
-                                               if( ucNormallyEmptyReceivedValues[ ux ] == intqHIGH_PRIROITY_TASK1 )\r
+                                               if( ucNormallyEmptyReceivedValues[ ux ] == intqHIGH_PRIORITY_TASK1 )\r
                                                {\r
                                                        /* Value was placed into the array by task 1. */\r
                                                        uxTask1++;\r
                                                }\r
-                                               else if( ucNormallyEmptyReceivedValues[ ux ] == intqHIGH_PRIROITY_TASK2 )\r
+                                               else if( ucNormallyEmptyReceivedValues[ ux ] == intqHIGH_PRIORITY_TASK2 )\r
                                                {\r
                                                        /* Value was placed into the array by task 2. */\r
                                                        uxTask2++;\r
@@ -388,7 +388,7 @@ portBASE_TYPE xQueueStatus;
                                prvQueueAccessLogError( __LINE__ );\r
                        }\r
 \r
-                       prvRecordValue_NormallyEmpty( uxRxed, intqLOW_PRIROITY_TASK );\r
+                       prvRecordValue_NormallyEmpty( uxRxed, intqLOW_PRIORITY_TASK );\r
                        \r
                        /* Wake the higher priority task again. */\r
                        vTaskResume( xHighPriorityNormallyEmptyTask1 );\r
@@ -451,7 +451,7 @@ portBASE_TYPE xQueueStatus;
 \r
                if( ( xQueueStatus = xQueueSend( xNormallyFullQueue, &uxValueToTx, intqSHORT_DELAY ) ) != pdPASS )\r
                {\r
-                       /* intqHIGH_PRIROITY_TASK2 is never suspended so we would not \r
+                       /* intqHIGH_PRIORITY_TASK2 is never suspended so we would not \r
                        expect it to ever time out. */\r
                        prvQueueAccessLogError( __LINE__ );\r
                }\r
@@ -588,7 +588,7 @@ portBASE_TYPE xQueueStatus;
                        }\r
                        else\r
                        {\r
-                               prvRecordValue_NormallyFull( uxValue, intqLOW_PRIROITY_TASK );\r
+                               prvRecordValue_NormallyFull( uxValue, intqLOW_PRIORITY_TASK );\r
                        }\r
                        \r
                        vTaskPrioritySet( NULL, intqLOWER_PRIORITY );\r
index a47c45f13e06b31c738e8329136c9428f326ee9f..24487e316d50e843d4ae7881ba16146e15cf853a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index b89a1185b0a1cee996d0a35661a62fb2b62f37e6..a9ead1325d6aa9deb92f8d04363589b0d5b68de0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 92f7fb0fdd475224349459247d27f45c44c3313d..8618376613e443b50811269d59a783b9dc3fb6d1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 0bb96ec26a9dd53b6c298b2fe3f757711b4ef854..6d6e3caa67ae9c63fde93f8259adfbb43cd14519 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index bf0c8963239217b90678d1bc18d5b38079732eb1..bf2fbb89b71c5582e078b3ce6994fbf8f415c9f0 100644 (file)
-/*
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.
-
-       This file is part of the FreeRTOS.org distribution.
-
-       FreeRTOS.org is free software; you can redistribute it and/or modify
-       it under the terms of the GNU General Public License as published by
-       the Free Software Foundation; either version 2 of the License, or
-       (at your option) any later version.
-
-       FreeRTOS.org is distributed in the hope that it will be useful,
-       but WITHOUT ANY WARRANTY; without even the implied warranty of
-       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-       GNU General Public License for more details.
-
-       You should have received a copy of the GNU General Public License
-       along with FreeRTOS.org; if not, write to the Free Software
-       Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-
-       A special exception to the GPL can be applied should you wish to distribute
-       a combined work that includes FreeRTOS.org, without being obliged to provide
-       the source code for any proprietary components.  See the licensing section
-       of http://www.FreeRTOS.org for full details of how and when the exception
-       can be applied.
-
-    ***************************************************************************
-    ***************************************************************************
-    *                                                                         *
-    * SAVE TIME AND MONEY!  We can port FreeRTOS.org to your own hardware,    *
-    * and even write all or part of your application on your behalf.          *
-    * See http://www.OpenRTOS.com for details of the services we provide to   *
-    * expedite your project.                                                  *
-    *                                                                         *
-    ***************************************************************************
-    ***************************************************************************
-
-       Please ensure to read the configuration and relevant port sections of the
-       online documentation.
-
-       http://www.FreeRTOS.org - Documentation, latest information, license and 
-       contact details.
-
-       http://www.SafeRTOS.com - A version that is certified for use in safety 
-       critical systems.
-
-       http://www.OpenRTOS.com - Commercial support, development, porting, 
-       licensing and training services.
-*/
-
-
-/* 
- * Simple demonstration of the usage of counting semaphore.
- */
-
-/* Scheduler include files. */
-#include "FreeRTOS.h"
-#include "task.h"
-#include "semphr.h"
-
-/* Demo program include files. */
-#include "countsem.h"
-
-/* The maximum count value that the semaphore used for the demo can hold. */
-#define countMAX_COUNT_VALUE   ( 200 )
-
-/* Constants used to indicate whether or not the semaphore should have been
-created with its maximum count value, or its minimum count value.  These 
-numbers are used to ensure that the pointers passed in as the task parameters
-are valid. */
-#define countSTART_AT_MAX_COUNT        ( 0xaa )
-#define countSTART_AT_ZERO             ( 0x55 )
-
-/* Two tasks are created for the test.  One uses a semaphore created with its
-count value set to the maximum, and one with the count value set to zero. */
-#define countNUM_TEST_TASKS            ( 2 )
-#define countDONT_BLOCK                        ( 0 )
-
-/*-----------------------------------------------------------*/
-
-/* Flag that will be latched to pdTRUE should any unexpected behaviour be
-detected in any of the tasks. */
-static volatile portBASE_TYPE xErrorDetected = pdFALSE;
-
-/*-----------------------------------------------------------*/
-
-/*
- * The demo task.  This simply counts the semaphore up to its maximum value,
- * the counts it back down again.  The result of each semaphore 'give' and
- * 'take' is inspected, with an error being flagged if it is found not to be
- * the expected result.
- */
-static void prvCountingSemaphoreTask( void *pvParameters );
-
-/*
- * Utility function to increment the semaphore count value up from zero to
- * countMAX_COUNT_VALUE.
- */
-static void prvIncrementSemaphoreCount( xSemaphoreHandle xSemaphore, unsigned portBASE_TYPE *puxLoopCounter );
-
-/*
- * Utility function to decrement the semaphore count value up from 
- * countMAX_COUNT_VALUE to zero.
- */
-static void prvDecrementSemaphoreCount( xSemaphoreHandle xSemaphore, unsigned portBASE_TYPE *puxLoopCounter );
-
-/*-----------------------------------------------------------*/
-
-/* The structure that is passed into the task as the task parameter. */
-typedef struct COUNT_SEM_STRUCT
-{
-       /* The semaphore to be used for the demo. */
-       xSemaphoreHandle xSemaphore;
-
-       /* Set to countSTART_AT_MAX_COUNT if the semaphore should be created with
-       its count value set to its max count value, or countSTART_AT_ZERO if it
-       should have been created with its count value set to 0. */
-       unsigned portBASE_TYPE uxExpectedStartCount;    
-
-       /* Incremented on each cycle of the demo task.  Used to detect a stalled
-       task. */
-       unsigned portBASE_TYPE uxLoopCounter;                   
-} xCountSemStruct;
-
-/* Two structures are defined, one is passed to each test task. */
-static volatile xCountSemStruct xParameters[ countNUM_TEST_TASKS ];
-
-/*-----------------------------------------------------------*/
-
-void vStartCountingSemaphoreTasks( void )
-{
-       /* Create the semaphores that we are going to use for the test/demo.  The
-       first should be created such that it starts at its maximum count value,
-       the second should be created such that it starts with a count value of zero. */
-       xParameters[ 0 ].xSemaphore = xSemaphoreCreateCounting( countMAX_COUNT_VALUE, countMAX_COUNT_VALUE );
-       xParameters[ 0 ].uxExpectedStartCount = countSTART_AT_MAX_COUNT;
-       xParameters[ 0 ].uxLoopCounter = 0;
-
-       xParameters[ 1 ].xSemaphore = xSemaphoreCreateCounting( countMAX_COUNT_VALUE, 0 );
-       xParameters[ 1 ].uxExpectedStartCount = 0;
-       xParameters[ 1 ].uxLoopCounter = 0;
+/*\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
+\r
+       This file is part of the FreeRTOS.org distribution.\r
+\r
+       FreeRTOS.org is free software; you can redistribute it and/or modify\r
+       it under the terms of the GNU General Public License as published by\r
+       the Free Software Foundation; either version 2 of the License, or\r
+       (at your option) any later version.\r
+\r
+       FreeRTOS.org is distributed in the hope that it will be useful,\r
+       but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+       GNU General Public License for more details.\r
+\r
+       You should have received a copy of the GNU General Public License\r
+       along with FreeRTOS.org; if not, write to the Free Software\r
+       Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA\r
+\r
+       A special exception to the GPL can be applied should you wish to distribute\r
+       a combined work that includes FreeRTOS.org, without being obliged to provide\r
+       the source code for any proprietary components.  See the licensing section\r
+       of http://www.FreeRTOS.org for full details of how and when the exception\r
+       can be applied.\r
+\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
+       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
+/* \r
+ * Simple demonstration of the usage of counting semaphore.\r
+ */\r
+\r
+/* Scheduler include files. */\r
+#include "FreeRTOS.h"\r
+#include "task.h"\r
+#include "semphr.h"\r
+\r
+/* Demo program include files. */\r
+#include "countsem.h"\r
+\r
+/* The maximum count value that the semaphore used for the demo can hold. */\r
+#define countMAX_COUNT_VALUE   ( 200 )\r
+\r
+/* Constants used to indicate whether or not the semaphore should have been\r
+created with its maximum count value, or its minimum count value.  These \r
+numbers are used to ensure that the pointers passed in as the task parameters\r
+are valid. */\r
+#define countSTART_AT_MAX_COUNT        ( 0xaa )\r
+#define countSTART_AT_ZERO             ( 0x55 )\r
+\r
+/* Two tasks are created for the test.  One uses a semaphore created with its\r
+count value set to the maximum, and one with the count value set to zero. */\r
+#define countNUM_TEST_TASKS            ( 2 )\r
+#define countDONT_BLOCK                        ( 0 )\r
+\r
+/*-----------------------------------------------------------*/\r
+\r
+/* Flag that will be latched to pdTRUE should any unexpected behaviour be\r
+detected in any of the tasks. */\r
+static volatile portBASE_TYPE xErrorDetected = pdFALSE;\r
+\r
+/*-----------------------------------------------------------*/\r
+\r
+/*\r
+ * The demo task.  This simply counts the semaphore up to its maximum value,\r
+ * the counts it back down again.  The result of each semaphore 'give' and\r
+ * 'take' is inspected, with an error being flagged if it is found not to be\r
+ * the expected result.\r
+ */\r
+static void prvCountingSemaphoreTask( void *pvParameters );\r
+\r
+/*\r
+ * Utility function to increment the semaphore count value up from zero to\r
+ * countMAX_COUNT_VALUE.\r
+ */\r
+static void prvIncrementSemaphoreCount( xSemaphoreHandle xSemaphore, unsigned portBASE_TYPE *puxLoopCounter );\r
+\r
+/*\r
+ * Utility function to decrement the semaphore count value up from \r
+ * countMAX_COUNT_VALUE to zero.\r
+ */\r
+static void prvDecrementSemaphoreCount( xSemaphoreHandle xSemaphore, unsigned portBASE_TYPE *puxLoopCounter );\r
+\r
+/*-----------------------------------------------------------*/\r
+\r
+/* The structure that is passed into the task as the task parameter. */\r
+typedef struct COUNT_SEM_STRUCT\r
+{\r
+       /* The semaphore to be used for the demo. */\r
+       xSemaphoreHandle xSemaphore;\r
+\r
+       /* Set to countSTART_AT_MAX_COUNT if the semaphore should be created with\r
+       its count value set to its max count value, or countSTART_AT_ZERO if it\r
+       should have been created with its count value set to 0. */\r
+       unsigned portBASE_TYPE uxExpectedStartCount;    \r
+\r
+       /* Incremented on each cycle of the demo task.  Used to detect a stalled\r
+       task. */\r
+       unsigned portBASE_TYPE uxLoopCounter;                   \r
+} xCountSemStruct;\r
+\r
+/* Two structures are defined, one is passed to each test task. */\r
+static volatile xCountSemStruct xParameters[ countNUM_TEST_TASKS ];\r
+\r
+/*-----------------------------------------------------------*/\r
+\r
+void vStartCountingSemaphoreTasks( void )\r
+{\r
+       /* Create the semaphores that we are going to use for the test/demo.  The\r
+       first should be created such that it starts at its maximum count value,\r
+       the second should be created such that it starts with a count value of zero. */\r
+       xParameters[ 0 ].xSemaphore = xSemaphoreCreateCounting( countMAX_COUNT_VALUE, countMAX_COUNT_VALUE );\r
+       xParameters[ 0 ].uxExpectedStartCount = countSTART_AT_MAX_COUNT;\r
+       xParameters[ 0 ].uxLoopCounter = 0;\r
+\r
+       xParameters[ 1 ].xSemaphore = xSemaphoreCreateCounting( countMAX_COUNT_VALUE, 0 );\r
+       xParameters[ 1 ].uxExpectedStartCount = 0;\r
+       xParameters[ 1 ].uxLoopCounter = 0;\r
 \r
        /* vQueueAddToRegistry() adds the semaphore to the registry, if one is\r
        in use.  The registry is provided as a means for kernel aware \r
@@ -148,159 +148,159 @@ void vStartCountingSemaphoreTasks( void )
        vQueueAddToRegistry( ( xQueueHandle ) xParameters[ 0 ].xSemaphore, ( signed portCHAR * ) "Counting_Sem_1" );\r
        vQueueAddToRegistry( ( xQueueHandle ) xParameters[ 1 ].xSemaphore, ( signed portCHAR * ) "Counting_Sem_2" );\r
 \r
-
-       /* Were the semaphores created? */
-       if( ( xParameters[ 0 ].xSemaphore != NULL ) || ( xParameters[ 1 ].xSemaphore != NULL ) )
-       {
-               /* Create the demo tasks, passing in the semaphore to use as the parameter. */
-               xTaskCreate( prvCountingSemaphoreTask, ( signed portCHAR * ) "CNT1", configMINIMAL_STACK_SIZE, ( void * ) &( xParameters[ 0 ] ), tskIDLE_PRIORITY, NULL );
-               xTaskCreate( prvCountingSemaphoreTask, ( signed portCHAR * ) "CNT2", configMINIMAL_STACK_SIZE, ( void * ) &( xParameters[ 1 ] ), tskIDLE_PRIORITY, NULL );              
-       }
-}
-/*-----------------------------------------------------------*/
-
-static void prvDecrementSemaphoreCount( xSemaphoreHandle xSemaphore, unsigned portBASE_TYPE *puxLoopCounter )
-{
-unsigned portBASE_TYPE ux;
-
-       /* If the semaphore count is at its maximum then we should not be able to
-       'give' the semaphore. */
-       if( xSemaphoreGive( xSemaphore ) == pdPASS )
-       {
-               xErrorDetected = pdTRUE;
-       }
-
-       /* We should be able to 'take' the semaphore countMAX_COUNT_VALUE times. */
-       for( ux = 0; ux < countMAX_COUNT_VALUE; ux++ )
-       {
-               if( xSemaphoreTake( xSemaphore, countDONT_BLOCK ) != pdPASS )
-               {
-                       /* We expected to be able to take the semaphore. */
-                       xErrorDetected = pdTRUE;
-               }
-
-               ( *puxLoopCounter )++;
-       }
-
-       #if configUSE_PREEMPTION == 0
-               taskYIELD();
-       #endif
-
-       /* If the semaphore count is zero then we should not be able to 'take' 
-       the semaphore. */
-       if( xSemaphoreTake( xSemaphore, countDONT_BLOCK ) == pdPASS )
-       {
-               xErrorDetected = pdTRUE;
-       }
-}
-/*-----------------------------------------------------------*/
-
-static void prvIncrementSemaphoreCount( xSemaphoreHandle xSemaphore, unsigned portBASE_TYPE *puxLoopCounter )
-{
-unsigned portBASE_TYPE ux;
-
-       /* If the semaphore count is zero then we should not be able to 'take' 
-       the semaphore. */
-       if( xSemaphoreTake( xSemaphore, countDONT_BLOCK ) == pdPASS )
-       {
-               xErrorDetected = pdTRUE;
-       }
-
-       /* We should be able to 'give' the semaphore countMAX_COUNT_VALUE times. */
-       for( ux = 0; ux < countMAX_COUNT_VALUE; ux++ )
-       {
-               if( xSemaphoreGive( xSemaphore ) != pdPASS )
-               {
-                       /* We expected to be able to take the semaphore. */
-                       xErrorDetected = pdTRUE;
-               }
-
-               ( *puxLoopCounter )++;
-       }
-
-       #if configUSE_PREEMPTION == 0
-               taskYIELD();
-       #endif
-
-       /* If the semaphore count is at its maximum then we should not be able to
-       'give' the semaphore. */
-       if( xSemaphoreGive( xSemaphore ) == pdPASS )
-       {
-               xErrorDetected = pdTRUE;
-       }
-}
-/*-----------------------------------------------------------*/
-
-static void prvCountingSemaphoreTask( void *pvParameters )
-{
-xCountSemStruct *pxParameter;
-
-       #ifdef USE_STDIO
-       void vPrintDisplayMessage( const portCHAR * const * ppcMessageToSend );
-       
-               const portCHAR * const pcTaskStartMsg = "Counting semaphore demo started.\r\n";
-
-               /* Queue a message for printing to say the task has started. */
-               vPrintDisplayMessage( &pcTaskStartMsg );
-       #endif
-
-       /* The semaphore to be used was passed as the parameter. */
-       pxParameter = ( xCountSemStruct * ) pvParameters;
-
-       /* Did we expect to find the semaphore already at its max count value, or
-       at zero? */
-       if( pxParameter->uxExpectedStartCount == countSTART_AT_MAX_COUNT )
-       {
-               prvDecrementSemaphoreCount( pxParameter->xSemaphore, &( pxParameter->uxLoopCounter ) );
-       }
-
-       /* Now we expect the semaphore count to be 0, so this time there is an
-       error if we can take the semaphore. */
-       if( xSemaphoreTake( pxParameter->xSemaphore, 0 ) == pdPASS )
-       {
-               xErrorDetected = pdTRUE;
-       }
-
-       for( ;; )
-       {
-               prvIncrementSemaphoreCount( pxParameter->xSemaphore, &( pxParameter->uxLoopCounter ) );
-               prvDecrementSemaphoreCount( pxParameter->xSemaphore, &( pxParameter->uxLoopCounter ) );
-       }
-}
-/*-----------------------------------------------------------*/
-
-portBASE_TYPE xAreCountingSemaphoreTasksStillRunning( void )
-{
-static unsigned portBASE_TYPE uxLastCount0 = 0, uxLastCount1 = 0;
-portBASE_TYPE xReturn = pdPASS;
-
-       /* Return fail if any 'give' or 'take' did not result in the expected
-       behaviour. */
-       if( xErrorDetected != pdFALSE )
-       {
-               xReturn = pdFAIL;
-       }
-
-       /* Return fail if either task is not still incrementing its loop counter. */
-       if( uxLastCount0 == xParameters[ 0 ].uxLoopCounter )
-       {
-               xReturn = pdFAIL;
-       }
-       else
-       {
-               uxLastCount0 = xParameters[ 0 ].uxLoopCounter;
-       }
-
-       if( uxLastCount1 == xParameters[ 1 ].uxLoopCounter )
-       {
-               xReturn = pdFAIL;
-       }
-       else
-       {
-               uxLastCount1 = xParameters[ 1 ].uxLoopCounter;
-       }
-
-       return xReturn;
-}
-
-
+\r
+       /* Were the semaphores created? */\r
+       if( ( xParameters[ 0 ].xSemaphore != NULL ) || ( xParameters[ 1 ].xSemaphore != NULL ) )\r
+       {\r
+               /* Create the demo tasks, passing in the semaphore to use as the parameter. */\r
+               xTaskCreate( prvCountingSemaphoreTask, ( signed portCHAR * ) "CNT1", configMINIMAL_STACK_SIZE, ( void * ) &( xParameters[ 0 ] ), tskIDLE_PRIORITY, NULL );\r
+               xTaskCreate( prvCountingSemaphoreTask, ( signed portCHAR * ) "CNT2", configMINIMAL_STACK_SIZE, ( void * ) &( xParameters[ 1 ] ), tskIDLE_PRIORITY, NULL );              \r
+       }\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static void prvDecrementSemaphoreCount( xSemaphoreHandle xSemaphore, unsigned portBASE_TYPE *puxLoopCounter )\r
+{\r
+unsigned portBASE_TYPE ux;\r
+\r
+       /* If the semaphore count is at its maximum then we should not be able to\r
+       'give' the semaphore. */\r
+       if( xSemaphoreGive( xSemaphore ) == pdPASS )\r
+       {\r
+               xErrorDetected = pdTRUE;\r
+       }\r
+\r
+       /* We should be able to 'take' the semaphore countMAX_COUNT_VALUE times. */\r
+       for( ux = 0; ux < countMAX_COUNT_VALUE; ux++ )\r
+       {\r
+               if( xSemaphoreTake( xSemaphore, countDONT_BLOCK ) != pdPASS )\r
+               {\r
+                       /* We expected to be able to take the semaphore. */\r
+                       xErrorDetected = pdTRUE;\r
+               }\r
+\r
+               ( *puxLoopCounter )++;\r
+       }\r
+\r
+       #if configUSE_PREEMPTION == 0\r
+               taskYIELD();\r
+       #endif\r
+\r
+       /* If the semaphore count is zero then we should not be able to 'take' \r
+       the semaphore. */\r
+       if( xSemaphoreTake( xSemaphore, countDONT_BLOCK ) == pdPASS )\r
+       {\r
+               xErrorDetected = pdTRUE;\r
+       }\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static void prvIncrementSemaphoreCount( xSemaphoreHandle xSemaphore, unsigned portBASE_TYPE *puxLoopCounter )\r
+{\r
+unsigned portBASE_TYPE ux;\r
+\r
+       /* If the semaphore count is zero then we should not be able to 'take' \r
+       the semaphore. */\r
+       if( xSemaphoreTake( xSemaphore, countDONT_BLOCK ) == pdPASS )\r
+       {\r
+               xErrorDetected = pdTRUE;\r
+       }\r
+\r
+       /* We should be able to 'give' the semaphore countMAX_COUNT_VALUE times. */\r
+       for( ux = 0; ux < countMAX_COUNT_VALUE; ux++ )\r
+       {\r
+               if( xSemaphoreGive( xSemaphore ) != pdPASS )\r
+               {\r
+                       /* We expected to be able to take the semaphore. */\r
+                       xErrorDetected = pdTRUE;\r
+               }\r
+\r
+               ( *puxLoopCounter )++;\r
+       }\r
+\r
+       #if configUSE_PREEMPTION == 0\r
+               taskYIELD();\r
+       #endif\r
+\r
+       /* If the semaphore count is at its maximum then we should not be able to\r
+       'give' the semaphore. */\r
+       if( xSemaphoreGive( xSemaphore ) == pdPASS )\r
+       {\r
+               xErrorDetected = pdTRUE;\r
+       }\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static void prvCountingSemaphoreTask( void *pvParameters )\r
+{\r
+xCountSemStruct *pxParameter;\r
+\r
+       #ifdef USE_STDIO\r
+       void vPrintDisplayMessage( const portCHAR * const * ppcMessageToSend );\r
+       \r
+               const portCHAR * const pcTaskStartMsg = "Counting semaphore demo started.\r\n";\r
+\r
+               /* Queue a message for printing to say the task has started. */\r
+               vPrintDisplayMessage( &pcTaskStartMsg );\r
+       #endif\r
+\r
+       /* The semaphore to be used was passed as the parameter. */\r
+       pxParameter = ( xCountSemStruct * ) pvParameters;\r
+\r
+       /* Did we expect to find the semaphore already at its max count value, or\r
+       at zero? */\r
+       if( pxParameter->uxExpectedStartCount == countSTART_AT_MAX_COUNT )\r
+       {\r
+               prvDecrementSemaphoreCount( pxParameter->xSemaphore, &( pxParameter->uxLoopCounter ) );\r
+       }\r
+\r
+       /* Now we expect the semaphore count to be 0, so this time there is an\r
+       error if we can take the semaphore. */\r
+       if( xSemaphoreTake( pxParameter->xSemaphore, 0 ) == pdPASS )\r
+       {\r
+               xErrorDetected = pdTRUE;\r
+       }\r
+\r
+       for( ;; )\r
+       {\r
+               prvIncrementSemaphoreCount( pxParameter->xSemaphore, &( pxParameter->uxLoopCounter ) );\r
+               prvDecrementSemaphoreCount( pxParameter->xSemaphore, &( pxParameter->uxLoopCounter ) );\r
+       }\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+portBASE_TYPE xAreCountingSemaphoreTasksStillRunning( void )\r
+{\r
+static unsigned portBASE_TYPE uxLastCount0 = 0, uxLastCount1 = 0;\r
+portBASE_TYPE xReturn = pdPASS;\r
+\r
+       /* Return fail if any 'give' or 'take' did not result in the expected\r
+       behaviour. */\r
+       if( xErrorDetected != pdFALSE )\r
+       {\r
+               xReturn = pdFAIL;\r
+       }\r
+\r
+       /* Return fail if either task is not still incrementing its loop counter. */\r
+       if( uxLastCount0 == xParameters[ 0 ].uxLoopCounter )\r
+       {\r
+               xReturn = pdFAIL;\r
+       }\r
+       else\r
+       {\r
+               uxLastCount0 = xParameters[ 0 ].uxLoopCounter;\r
+       }\r
+\r
+       if( uxLastCount1 == xParameters[ 1 ].uxLoopCounter )\r
+       {\r
+               xReturn = pdFAIL;\r
+       }\r
+       else\r
+       {\r
+               uxLastCount1 = xParameters[ 1 ].uxLoopCounter;\r
+       }\r
+\r
+       return xReturn;\r
+}\r
+\r
+\r
index 4ae712466e93db58ab7fd4f8232fe6551fb60c51..bba54a3fe5a687f54b4ab4fb8dcde69724b3d248 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index ef0ca886336fbbcc03024cd52a7a7da025a50184..e22d29c8c6cb3e8fcfb393a53bf168c094af8600 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index be00b2395574bfa793e861785b006c8e51425bdc..adf45956754a9b1d496c9982faf2241ccc7071df 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 895a127a9fde0466bc850bb495cbe5738d560110..be0b58eba7879ff9a329c0f102aa22a9d570fc3c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 7a1aaa0137a39f6cc7cc0f5249742c8dbb48f7ca..51a54eb4683d037f75c1e09de15eff910b5032ee 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 46b1919b74b12a795c92121a7cc40fa4217b5640..5b0fe29d85275bd523145c15404c068c401ed8ff 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index b0faca41e66a97227bd359f7c75970a18fe3f4de..5caed00c6c4dff7f71c465ac98d39d830438f6ea 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 901aa2afa2cea15e339b696dbbb8f5e92f60422a..b573ff949cd71b7e4a12dbdcd457628fdfa73bb6 100644 (file)
-/*
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.
-
-       This file is part of the FreeRTOS.org distribution.
-
-       FreeRTOS.org is free software; you can redistribute it and/or modify
-       it under the terms of the GNU General Public License as published by
-       the Free Software Foundation; either version 2 of the License, or
-       (at your option) any later version.
-
-       FreeRTOS.org is distributed in the hope that it will be useful,
-       but WITHOUT ANY WARRANTY; without even the implied warranty of
-       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-       GNU General Public License for more details.
-
-       You should have received a copy of the GNU General Public License
-       along with FreeRTOS.org; if not, write to the Free Software
-       Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-
-       A special exception to the GPL can be applied should you wish to distribute
-       a combined work that includes FreeRTOS.org, without being obliged to provide
-       the source code for any proprietary components.  See the licensing section 
-       of http://www.FreeRTOS.org for full details of how and when the exception
-       can be applied.
-
-    ***************************************************************************
-    ***************************************************************************
-    *                                                                         *
-    * SAVE TIME AND MONEY!  We can port FreeRTOS.org to your own hardware,    *
-    * and even write all or part of your application on your behalf.          *
-    * See http://www.OpenRTOS.com for details of the services we provide to   *
-    * expedite your project.                                                  *
-    *                                                                         *
-    ***************************************************************************
-    ***************************************************************************
-
-       Please ensure to read the configuration and relevant port sections of the
-       online documentation.
-
-       http://www.FreeRTOS.org - Documentation, latest information, license and 
-       contact details.
-
-       http://www.SafeRTOS.com - A version that is certified for use in safety 
-       critical systems.
-
-       http://www.OpenRTOS.com - Commercial support, development, porting, 
-       licensing and training services.
-*/
-
-/*
-       The tasks defined on this page demonstrate the use of recursive mutexes.
-
-       For recursive mutex functionality the created mutex should be created using
-       xSemaphoreCreateRecursiveMutex(), then be manipulated
-       using the xSemaphoreTakeRecursive() and xSemaphoreGiveRecursive() API
-       functions.
-
-       This demo creates three tasks all of which access the same recursive mutex:
-
-       prvRecursiveMutexControllingTask() has the highest priority so executes 
-       first and grabs the mutex.  It then performs some recursive accesses - 
-       between each of which it sleeps for a short period to let the lower 
-       priority tasks execute.  When it has completed its demo functionality
-       it gives the mutex back before suspending itself.
-
-       prvRecursiveMutexBlockingTask() attempts to access the mutex by performing
-       a blocking 'take'.  The blocking task has a lower priority than the 
-       controlling     task so by the time it executes the mutex has already been
-       taken by the controlling task,  causing the blocking task to block.  It 
-       does not unblock until the controlling task has given the mutex back, 
-       and it does not actually run until the controlling task has suspended 
-       itself (due to the relative priorities).  When it eventually does obtain
-       the mutex all it does is give the mutex back prior to also suspending 
-       itself.  At this point both the controlling task and the blocking task are 
-       suspended.
-
-       prvRecursiveMutexPollingTask() runs at the idle priority.  It spins round
-       a tight loop attempting to obtain the mutex with a non-blocking call.  As
-       the lowest priority task it will not successfully obtain the mutex until
-       both the controlling and blocking tasks are suspended.  Once it eventually 
-       does obtain the mutex it first unsuspends both the controlling task and
-       blocking task prior to giving the mutex back - resulting in the polling
-       task temporarily inheriting the controlling tasks priority.
-*/
-
-/* Scheduler include files. */
-#include "FreeRTOS.h"
-#include "task.h"
-#include "semphr.h"
-
-/* Demo app include files. */
-#include "recmutex.h"
-
-/* Priorities assigned to the three tasks. */
-#define recmuCONTROLLING_TASK_PRIORITY ( tskIDLE_PRIORITY + 2 )
-#define recmuBLOCKING_TASK_PRIORITY            ( tskIDLE_PRIORITY + 1 )
-#define recmuPOLLING_TASK_PRIORITY             ( tskIDLE_PRIORITY + 0 )
-
-/* The recursive call depth. */
-#define recmuMAX_COUNT                                 ( 10 )
-
-/* Misc. */
-#define recmuSHORT_DELAY                               ( 20 / portTICK_RATE_MS )
-#define recmuNO_DELAY                                  ( ( portTickType ) 0 )
-#define recmuTWO_TICK_DELAY                            ( ( portTickType ) 2 )
-
-/* The three tasks as described at the top of this file. */
-static void prvRecursiveMutexControllingTask( void *pvParameters );
-static void prvRecursiveMutexBlockingTask( void *pvParameters );
-static void prvRecursiveMutexPollingTask( void *pvParameters );
-
-/* The mutex used by the demo. */
-static xSemaphoreHandle xMutex;
-
-/* Variables used to detect and latch errors. */
-static volatile portBASE_TYPE xErrorOccurred = pdFALSE, xControllingIsSuspended = pdFALSE, xBlockingIsSuspended = pdFALSE;
-static volatile unsigned portBASE_TYPE uxControllingCycles = 0, uxBlockingCycles, uxPollingCycles = 0;
-
-/* Handles of the two higher priority tasks, required so they can be resumed 
-(unsuspended). */
-static xTaskHandle xControllingTaskHandle, xBlockingTaskHandle;
-
-/*-----------------------------------------------------------*/
-
-void vStartRecursiveMutexTasks( void )
-{
-       /* Just creates the mutex and the three tasks. */
-
+/*\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
+\r
+       This file is part of the FreeRTOS.org distribution.\r
+\r
+       FreeRTOS.org is free software; you can redistribute it and/or modify\r
+       it under the terms of the GNU General Public License as published by\r
+       the Free Software Foundation; either version 2 of the License, or\r
+       (at your option) any later version.\r
+\r
+       FreeRTOS.org is distributed in the hope that it will be useful,\r
+       but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+       GNU General Public License for more details.\r
+\r
+       You should have received a copy of the GNU General Public License\r
+       along with FreeRTOS.org; if not, write to the Free Software\r
+       Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA\r
+\r
+       A special exception to the GPL can be applied should you wish to distribute\r
+       a combined work that includes FreeRTOS.org, without being obliged to provide\r
+       the source code for any proprietary components.  See the licensing section \r
+       of http://www.FreeRTOS.org for full details of how and when the exception\r
+       can be applied.\r
+\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
+       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
+       The tasks defined on this page demonstrate the use of recursive mutexes.\r
+\r
+       For recursive mutex functionality the created mutex should be created using\r
+       xSemaphoreCreateRecursiveMutex(), then be manipulated\r
+       using the xSemaphoreTakeRecursive() and xSemaphoreGiveRecursive() API\r
+       functions.\r
+\r
+       This demo creates three tasks all of which access the same recursive mutex:\r
+\r
+       prvRecursiveMutexControllingTask() has the highest priority so executes \r
+       first and grabs the mutex.  It then performs some recursive accesses - \r
+       between each of which it sleeps for a short period to let the lower \r
+       priority tasks execute.  When it has completed its demo functionality\r
+       it gives the mutex back before suspending itself.\r
+\r
+       prvRecursiveMutexBlockingTask() attempts to access the mutex by performing\r
+       a blocking 'take'.  The blocking task has a lower priority than the \r
+       controlling     task so by the time it executes the mutex has already been\r
+       taken by the controlling task,  causing the blocking task to block.  It \r
+       does not unblock until the controlling task has given the mutex back, \r
+       and it does not actually run until the controlling task has suspended \r
+       itself (due to the relative priorities).  When it eventually does obtain\r
+       the mutex all it does is give the mutex back prior to also suspending \r
+       itself.  At this point both the controlling task and the blocking task are \r
+       suspended.\r
+\r
+       prvRecursiveMutexPollingTask() runs at the idle priority.  It spins round\r
+       a tight loop attempting to obtain the mutex with a non-blocking call.  As\r
+       the lowest priority task it will not successfully obtain the mutex until\r
+       both the controlling and blocking tasks are suspended.  Once it eventually \r
+       does obtain the mutex it first unsuspends both the controlling task and\r
+       blocking task prior to giving the mutex back - resulting in the polling\r
+       task temporarily inheriting the controlling tasks priority.\r
+*/\r
+\r
+/* Scheduler include files. */\r
+#include "FreeRTOS.h"\r
+#include "task.h"\r
+#include "semphr.h"\r
+\r
+/* Demo app include files. */\r
+#include "recmutex.h"\r
+\r
+/* Priorities assigned to the three tasks. */\r
+#define recmuCONTROLLING_TASK_PRIORITY ( tskIDLE_PRIORITY + 2 )\r
+#define recmuBLOCKING_TASK_PRIORITY            ( tskIDLE_PRIORITY + 1 )\r
+#define recmuPOLLING_TASK_PRIORITY             ( tskIDLE_PRIORITY + 0 )\r
+\r
+/* The recursive call depth. */\r
+#define recmuMAX_COUNT                                 ( 10 )\r
+\r
+/* Misc. */\r
+#define recmuSHORT_DELAY                               ( 20 / portTICK_RATE_MS )\r
+#define recmuNO_DELAY                                  ( ( portTickType ) 0 )\r
+#define recmuTWO_TICK_DELAY                            ( ( portTickType ) 2 )\r
+\r
+/* The three tasks as described at the top of this file. */\r
+static void prvRecursiveMutexControllingTask( void *pvParameters );\r
+static void prvRecursiveMutexBlockingTask( void *pvParameters );\r
+static void prvRecursiveMutexPollingTask( void *pvParameters );\r
+\r
+/* The mutex used by the demo. */\r
+static xSemaphoreHandle xMutex;\r
+\r
+/* Variables used to detect and latch errors. */\r
+static volatile portBASE_TYPE xErrorOccurred = pdFALSE, xControllingIsSuspended = pdFALSE, xBlockingIsSuspended = pdFALSE;\r
+static volatile unsigned portBASE_TYPE uxControllingCycles = 0, uxBlockingCycles, uxPollingCycles = 0;\r
+\r
+/* Handles of the two higher priority tasks, required so they can be resumed \r
+(unsuspended). */\r
+static xTaskHandle xControllingTaskHandle, xBlockingTaskHandle;\r
+\r
+/*-----------------------------------------------------------*/\r
+\r
+void vStartRecursiveMutexTasks( void )\r
+{\r
+       /* Just creates the mutex and the three tasks. */\r
+\r
        xMutex = xSemaphoreCreateRecursiveMutex();\r
 \r
        /* vQueueAddToRegistry() adds the mutex to the registry, if one is\r
@@ -135,231 +135,231 @@ void vStartRecursiveMutexTasks( void )
        by the pre-processor if configQUEUE_REGISTRY_SIZE is not defined or is \r
        defined to be less than 1. */\r
        vQueueAddToRegistry( ( xQueueHandle ) xMutex, ( signed portCHAR * ) "Recursive_Mutex" );\r
-
-
-       if( xMutex != NULL )
-       {
-               xTaskCreate( prvRecursiveMutexControllingTask, ( signed portCHAR * ) "Rec1", configMINIMAL_STACK_SIZE, NULL, recmuCONTROLLING_TASK_PRIORITY, &xControllingTaskHandle );
-        xTaskCreate( prvRecursiveMutexBlockingTask, ( signed portCHAR * ) "Rec2", configMINIMAL_STACK_SIZE, NULL, recmuBLOCKING_TASK_PRIORITY, &xBlockingTaskHandle );
-        xTaskCreate( prvRecursiveMutexPollingTask, ( signed portCHAR * ) "Rec3", configMINIMAL_STACK_SIZE, NULL, recmuPOLLING_TASK_PRIORITY, NULL );
-       }
-}
-/*-----------------------------------------------------------*/
-
-static void prvRecursiveMutexControllingTask( void *pvParameters )
-{
-unsigned portBASE_TYPE ux;
+\r
+\r
+       if( xMutex != NULL )\r
+       {\r
+               xTaskCreate( prvRecursiveMutexControllingTask, ( signed portCHAR * ) "Rec1", configMINIMAL_STACK_SIZE, NULL, recmuCONTROLLING_TASK_PRIORITY, &xControllingTaskHandle );\r
+        xTaskCreate( prvRecursiveMutexBlockingTask, ( signed portCHAR * ) "Rec2", configMINIMAL_STACK_SIZE, NULL, recmuBLOCKING_TASK_PRIORITY, &xBlockingTaskHandle );\r
+        xTaskCreate( prvRecursiveMutexPollingTask, ( signed portCHAR * ) "Rec3", configMINIMAL_STACK_SIZE, NULL, recmuPOLLING_TASK_PRIORITY, NULL );\r
+       }\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static void prvRecursiveMutexControllingTask( void *pvParameters )\r
+{\r
+unsigned portBASE_TYPE ux;\r
 \r
        /* Just to remove compiler warning. */\r
        ( void ) pvParameters;\r
-
-       for( ;; )
-       {
-               /* Should not be able to 'give' the mutex, as we have not yet 'taken'
-               it. */
-               if( xSemaphoreGiveRecursive( xMutex ) == pdPASS )
-               {
-                       xErrorOccurred = pdTRUE;
-               }
-
-               for( ux = 0; ux < recmuMAX_COUNT; ux++ )
-               {
-                       /* We should now be able to take the mutex as many times as
-                       we like.  A one tick delay is used so the polling task will
-                       inherit our priority on all but the first cycle of this task. 
-                       If we did not block attempting to receive the mutex then no
-                       priority inheritance would occur. */
-                       if( xSemaphoreTakeRecursive( xMutex, recmuTWO_TICK_DELAY ) != pdPASS )
-                       {
-                               xErrorOccurred = pdTRUE;
-                       }
-
-                       /* Ensure the other task attempting to access the mutex (and the
-                       other demo tasks) are able to execute. */
-                       vTaskDelay( recmuSHORT_DELAY );
-               }
-
-               /* For each time we took the mutex, give it back. */
-               for( ux = 0; ux < recmuMAX_COUNT; ux++ )
-               {
-                       /* Ensure the other task attempting to access the mutex (and the
-                       other demo tasks) are able to execute. */
-                       vTaskDelay( recmuSHORT_DELAY );
-
-                       /* We should now be able to give the mutex as many times as we
-                       took it. */
-                       if( xSemaphoreGiveRecursive( xMutex ) != pdPASS )
-                       {
-                               xErrorOccurred = pdTRUE;
-                       }
-               }
-
-               /* Having given it back the same number of times as it was taken, we
-               should no longer be the mutex owner, so the next give sh ould fail. */
-               if( xSemaphoreGiveRecursive( xMutex ) == pdPASS )
-               {
-                       xErrorOccurred = pdTRUE;
-               }
-
-               /* Keep count of the number of cycles this task has performed so a 
-               stall can be detected. */
-               uxControllingCycles++;
-
-               /* Suspend ourselves to the blocking task can execute. */
-               xControllingIsSuspended = pdTRUE;
-               vTaskSuspend( NULL );
-               xControllingIsSuspended = pdFALSE;
-       }
-}
-/*-----------------------------------------------------------*/
-
-static void prvRecursiveMutexBlockingTask( void *pvParameters )
+\r
+       for( ;; )\r
+       {\r
+               /* Should not be able to 'give' the mutex, as we have not yet 'taken'\r
+               it. */\r
+               if( xSemaphoreGiveRecursive( xMutex ) == pdPASS )\r
+               {\r
+                       xErrorOccurred = pdTRUE;\r
+               }\r
+\r
+               for( ux = 0; ux < recmuMAX_COUNT; ux++ )\r
+               {\r
+                       /* We should now be able to take the mutex as many times as\r
+                       we like.  A one tick delay is used so the polling task will\r
+                       inherit our priority on all but the first cycle of this task. \r
+                       If we did not block attempting to receive the mutex then no\r
+                       priority inheritance would occur. */\r
+                       if( xSemaphoreTakeRecursive( xMutex, recmuTWO_TICK_DELAY ) != pdPASS )\r
+                       {\r
+                               xErrorOccurred = pdTRUE;\r
+                       }\r
+\r
+                       /* Ensure the other task attempting to access the mutex (and the\r
+                       other demo tasks) are able to execute. */\r
+                       vTaskDelay( recmuSHORT_DELAY );\r
+               }\r
+\r
+               /* For each time we took the mutex, give it back. */\r
+               for( ux = 0; ux < recmuMAX_COUNT; ux++ )\r
+               {\r
+                       /* Ensure the other task attempting to access the mutex (and the\r
+                       other demo tasks) are able to execute. */\r
+                       vTaskDelay( recmuSHORT_DELAY );\r
+\r
+                       /* We should now be able to give the mutex as many times as we\r
+                       took it. */\r
+                       if( xSemaphoreGiveRecursive( xMutex ) != pdPASS )\r
+                       {\r
+                               xErrorOccurred = pdTRUE;\r
+                       }\r
+               }\r
+\r
+               /* Having given it back the same number of times as it was taken, we\r
+               should no longer be the mutex owner, so the next give sh ould fail. */\r
+               if( xSemaphoreGiveRecursive( xMutex ) == pdPASS )\r
+               {\r
+                       xErrorOccurred = pdTRUE;\r
+               }\r
+\r
+               /* Keep count of the number of cycles this task has performed so a \r
+               stall can be detected. */\r
+               uxControllingCycles++;\r
+\r
+               /* Suspend ourselves to the blocking task can execute. */\r
+               xControllingIsSuspended = pdTRUE;\r
+               vTaskSuspend( NULL );\r
+               xControllingIsSuspended = pdFALSE;\r
+       }\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static void prvRecursiveMutexBlockingTask( void *pvParameters )\r
 {\r
        /* Just to remove compiler warning. */\r
        ( void ) pvParameters;\r
-
-       for( ;; )
-       {
-               /* Attempt to obtain the mutex.  We should block until the 
-               controlling task has given up the mutex, and not actually execute
-               past this call until the controlling task is suspended. */
-               if( xSemaphoreTakeRecursive( xMutex, portMAX_DELAY ) == pdPASS )
-               {
-                       if( xControllingIsSuspended != pdTRUE )
-                       {
-                               /* Did not expect to execute until the controlling task was
-                               suspended. */
-                               xErrorOccurred = pdTRUE;
-                       }
-                       else
-                       {
-                               /* Give the mutex back before suspending ourselves to allow
-                               the polling task to obtain the mutex. */
-                               if( xSemaphoreGiveRecursive( xMutex ) != pdPASS )
-                               {
-                                       xErrorOccurred = pdTRUE;
-                               }
-
-                               xBlockingIsSuspended = pdTRUE;
-                               vTaskSuspend( NULL );
-                               xBlockingIsSuspended = pdFALSE;
-                       }
-               }
-               else
-               {
-                       /* We should not leave the xSemaphoreTakeRecursive() function
-                       until the mutex was obtained. */
-                       xErrorOccurred = pdTRUE;
-               }
-
-               /* The controlling and blocking tasks should be in lock step. */
-               if( uxControllingCycles != ( uxBlockingCycles + 1 ) )
-               {
-                       xErrorOccurred = pdTRUE;
-               }
-
-               /* Keep count of the number of cycles this task has performed so a 
-               stall can be detected. */
-               uxBlockingCycles++;
-       }
-}
-/*-----------------------------------------------------------*/
-
-static void prvRecursiveMutexPollingTask( void *pvParameters )
+\r
+       for( ;; )\r
+       {\r
+               /* Attempt to obtain the mutex.  We should block until the \r
+               controlling task has given up the mutex, and not actually execute\r
+               past this call until the controlling task is suspended. */\r
+               if( xSemaphoreTakeRecursive( xMutex, portMAX_DELAY ) == pdPASS )\r
+               {\r
+                       if( xControllingIsSuspended != pdTRUE )\r
+                       {\r
+                               /* Did not expect to execute until the controlling task was\r
+                               suspended. */\r
+                               xErrorOccurred = pdTRUE;\r
+                       }\r
+                       else\r
+                       {\r
+                               /* Give the mutex back before suspending ourselves to allow\r
+                               the polling task to obtain the mutex. */\r
+                               if( xSemaphoreGiveRecursive( xMutex ) != pdPASS )\r
+                               {\r
+                                       xErrorOccurred = pdTRUE;\r
+                               }\r
+\r
+                               xBlockingIsSuspended = pdTRUE;\r
+                               vTaskSuspend( NULL );\r
+                               xBlockingIsSuspended = pdFALSE;\r
+                       }\r
+               }\r
+               else\r
+               {\r
+                       /* We should not leave the xSemaphoreTakeRecursive() function\r
+                       until the mutex was obtained. */\r
+                       xErrorOccurred = pdTRUE;\r
+               }\r
+\r
+               /* The controlling and blocking tasks should be in lock step. */\r
+               if( uxControllingCycles != ( uxBlockingCycles + 1 ) )\r
+               {\r
+                       xErrorOccurred = pdTRUE;\r
+               }\r
+\r
+               /* Keep count of the number of cycles this task has performed so a \r
+               stall can be detected. */\r
+               uxBlockingCycles++;\r
+       }\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static void prvRecursiveMutexPollingTask( void *pvParameters )\r
 {\r
-       /* Just to remove compiler warning. */
-       ( void ) pvParameters;
-\r
-       for( ;; )
-       {
-               /* Keep attempting to obtain the mutex.  We should only obtain it when
-               the blocking task has suspended itself. */
-               if( xSemaphoreTakeRecursive( xMutex, recmuNO_DELAY ) == pdPASS )
-               {
-                       /* Is the blocking task suspended? */
-                       if( xBlockingIsSuspended != pdTRUE )
-                       {
-                               xErrorOccurred = pdTRUE;
-                       }
-                       else
-                       {
-                               /* Keep count of the number of cycles this task has performed so 
-                               a stall can be detected. */
-                               uxPollingCycles++;
-
-                               /* We can resume the other tasks here even though they have a
-                               higher priority than the polling task.  When they execute they
-                               will attempt to obtain the mutex but fail because the polling
-                               task is still the mutex holder.  The polling task (this task)
-                               will then inherit the higher priority. */                               
-                               vTaskResume( xBlockingTaskHandle );
-                vTaskResume( xControllingTaskHandle );
-                       
-                               /* Release the mutex, disinheriting the higher priority again. */
-                               if( xSemaphoreGiveRecursive( xMutex ) != pdPASS )
-                               {
-                                       xErrorOccurred = pdTRUE;
-                               }
-                       }
-               }
-
-               #if configUSE_PREEMPTION == 0
-               {
-                       taskYIELD();
-               }
-               #endif
-       }
-}
-/*-----------------------------------------------------------*/
-
-/* This is called to check that all the created tasks are still running. */
-portBASE_TYPE xAreRecursiveMutexTasksStillRunning( void )
-{
-portBASE_TYPE xReturn;
-static unsigned portBASE_TYPE uxLastControllingCycles = 0, uxLastBlockingCycles = 0, uxLastPollingCycles = 0;
-
-       /* Is the controlling task still cycling? */
-       if( uxLastControllingCycles == uxControllingCycles )
-       {
-               xErrorOccurred = pdTRUE;
-       }
-       else
-       {
-               uxLastControllingCycles = uxControllingCycles;
-       }
-
-       /* Is the blocking task still cycling? */
-       if( uxLastBlockingCycles == uxBlockingCycles )
-       {
-               xErrorOccurred = pdTRUE;
-       }
-       else
-       {
-               uxLastBlockingCycles = uxBlockingCycles;
-       }
-
-       /* Is the polling task still cycling? */
-       if( uxLastPollingCycles == uxPollingCycles )
-       {
-               xErrorOccurred = pdTRUE;
-       }
-       else
-       {
-               uxLastPollingCycles = uxPollingCycles;
-       }
-
-       if( xErrorOccurred == pdTRUE )
-       {
-               xReturn = pdFAIL;
-       }
-       else
-       {
-               xReturn = pdTRUE;
-       }
-
-       return xReturn;
-}
-
-
-
-
+       /* Just to remove compiler warning. */\r
+       ( void ) pvParameters;\r
+\r
+       for( ;; )\r
+       {\r
+               /* Keep attempting to obtain the mutex.  We should only obtain it when\r
+               the blocking task has suspended itself. */\r
+               if( xSemaphoreTakeRecursive( xMutex, recmuNO_DELAY ) == pdPASS )\r
+               {\r
+                       /* Is the blocking task suspended? */\r
+                       if( xBlockingIsSuspended != pdTRUE )\r
+                       {\r
+                               xErrorOccurred = pdTRUE;\r
+                       }\r
+                       else\r
+                       {\r
+                               /* Keep count of the number of cycles this task has performed so \r
+                               a stall can be detected. */\r
+                               uxPollingCycles++;\r
+\r
+                               /* We can resume the other tasks here even though they have a\r
+                               higher priority than the polling task.  When they execute they\r
+                               will attempt to obtain the mutex but fail because the polling\r
+                               task is still the mutex holder.  The polling task (this task)\r
+                               will then inherit the higher priority. */                               \r
+                               vTaskResume( xBlockingTaskHandle );\r
+                vTaskResume( xControllingTaskHandle );\r
+                       \r
+                               /* Release the mutex, disinheriting the higher priority again. */\r
+                               if( xSemaphoreGiveRecursive( xMutex ) != pdPASS )\r
+                               {\r
+                                       xErrorOccurred = pdTRUE;\r
+                               }\r
+                       }\r
+               }\r
+\r
+               #if configUSE_PREEMPTION == 0\r
+               {\r
+                       taskYIELD();\r
+               }\r
+               #endif\r
+       }\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+/* This is called to check that all the created tasks are still running. */\r
+portBASE_TYPE xAreRecursiveMutexTasksStillRunning( void )\r
+{\r
+portBASE_TYPE xReturn;\r
+static unsigned portBASE_TYPE uxLastControllingCycles = 0, uxLastBlockingCycles = 0, uxLastPollingCycles = 0;\r
+\r
+       /* Is the controlling task still cycling? */\r
+       if( uxLastControllingCycles == uxControllingCycles )\r
+       {\r
+               xErrorOccurred = pdTRUE;\r
+       }\r
+       else\r
+       {\r
+               uxLastControllingCycles = uxControllingCycles;\r
+       }\r
+\r
+       /* Is the blocking task still cycling? */\r
+       if( uxLastBlockingCycles == uxBlockingCycles )\r
+       {\r
+               xErrorOccurred = pdTRUE;\r
+       }\r
+       else\r
+       {\r
+               uxLastBlockingCycles = uxBlockingCycles;\r
+       }\r
+\r
+       /* Is the polling task still cycling? */\r
+       if( uxLastPollingCycles == uxPollingCycles )\r
+       {\r
+               xErrorOccurred = pdTRUE;\r
+       }\r
+       else\r
+       {\r
+               uxLastPollingCycles = uxPollingCycles;\r
+       }\r
+\r
+       if( xErrorOccurred == pdTRUE )\r
+       {\r
+               xReturn = pdFAIL;\r
+       }\r
+       else\r
+       {\r
+               xReturn = pdTRUE;\r
+       }\r
+\r
+       return xReturn;\r
+}\r
+\r
+\r
+\r
+\r
index 5158b9a9e01c284b19368115c5b987c11135d37c..424c0b43288bcaf6fab05537acad3d378c5e57da 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
@@ -155,6 +155,15 @@ const portTickType xBlockTime = ( portTickType ) 100;
                        xTaskCreate( prvSemaphoreTest, ( signed portCHAR * ) "BlkSEM2", semtstSTACK_SIZE, ( void * ) pxSecondSemaphoreParameters, uxPriority, ( xTaskHandle * ) NULL );\r
                }\r
        }\r
+\r
+       /* vQueueAddToRegistry() adds the semaphore to the registry, if one is\r
+       in use.  The registry is provided as a means for kernel aware \r
+       debuggers to locate semaphores and has no purpose if a kernel aware debugger\r
+       is not being used.  The call to vQueueAddToRegistry() will be removed\r
+       by the pre-processor if configQUEUE_REGISTRY_SIZE is not defined or is \r
+       defined to be less than 1. */\r
+       vQueueAddToRegistry( ( xQueueHandle ) pxFirstSemaphoreParameters->xSemaphore, ( signed portCHAR * ) "Counting_Sem_1" );\r
+       vQueueAddToRegistry( ( xQueueHandle ) pxSecondSemaphoreParameters->xSemaphore, ( signed portCHAR * ) "Counting_Sem_2" );\r
 }\r
 /*-----------------------------------------------------------*/\r
 \r
index 31befc5fa3bb9f80c01a9e3d585cd4e76438a5d7..56559987a316b709bd13550973da2eb7c7f7b4a6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index a8e0bff5b6df1cddf206df9d9517b5c9214fbd61..6a0ce03cbd4ca3fa6febbb1da27bb5885f787ecf 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 53370378fab78e582a44930c4791cb3761da1e5e..4d40724e86f559ab9d6704c4f8c2c97ff7e34988 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 27d5e7bcb30f83002570bba60538ad13e4660f80..97d06f01e82b4766bc8f66586e75a2c66513e418 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index a7ad7152f1962f1bb29f9df973623afbd07692b7..853cb45ab813c9f5554ac4030660b22624a49555 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index f350b7adaaf254612399bd6ac92b5081e3af331f..14266aa33a2f03a30393522f24a46d831706042c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 017b02fbef1a82b8a2a98bead63ef20eeb87c17c..969bcb1c7be7433a3cc1e3c4f92a21cf73bda00d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index c64d78196db4f327700b3a0273a779aef27dc6f4..f3197fb764f8e707c364ef7123970b9bcd472671 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 0c776505dcf6858944aeb1137a5d76807e0a6d94..e634b599955267f35600e18eb875adb624a694c8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index ba40892acd4211860ed5b65d9371ff7c820b68b4..fd4ebd1c392da357a0691b680bab1edd5d152769 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index e71b2a14b46e84885123d728207484a4cbb9f4a1..8838aa7688c5eb1e9fa67a1004d0c6f6ae216de8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 2ada9b2394cccebc43bf70017b1251d068700810..9b1d4dab2080c98cd6027590804c8700d6e97f40 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 559a02374dda62ddda6ec2ca609966a45b1c076d..afc81e033f7872f26cc525a0ee32fa1ef619e288 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 4b0ed06e2b409d629940467ab352181a8fd6b9d8..feae9d90c25307ba7e13be51499dca6c61b2e396 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index e66423ac303b5996c836b1f96679ad11f83d778f..4f4c9daac8b9760c0476f8aeb3ec30c6b43558d5 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 92e1d6f9f22fd1081b4bf502071a38a992c1970a..cbe5dae7c47bcd342f16d71f7676c8396edc3a28 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 3070a47c0433faec3840bbb06705e57bf8169a19..636bdcb50758461dcaa2afd6a436f2a8792863ae 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 97ad884248afe7f7601557bdfa8aa1923265ed31..6d01f5f895a309f34dc1320a5798ae77ef723295 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index f330aa2c0d031cd5799f4c6d928c67abce993630..195d35ce0f89e25827c48928f776bfdaceb4b29e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index d4ec16daf7aa354993cdff4d485dc629a9cf2ff7..43620f809bc903dbf7e1c0eabfa27d497acabdee 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 7a5937db38eab877ecf416ec56755e4d40eb2efc..2bd33182ef1f4eb68a3fa24309bf3bedf2b1f6e9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 131bdd121f40fc9852c76187a18cf62020f3148f..f57c1500919174eb07cd2eb830ef0cb0d5835498 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index f800b06166e491dd44504de182fa4fc2ca1b915e..3aafbf216ccb454776ec257eaddd07fd71725ede 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 6bb63dd7fc9174c1752d9baa1e16a543868c16c9..76e23a0d562b31c0c755442b5d5d5980a99e2f61 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 1a69d3cbdcea90ef7c7fd8f68b171083296eaf39..fdb957b02d5468124a61dc37b8235fa7b3ebaed3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 1f19191d06fdd91c4aa43188741dad6afa63d890..0b058c490abc418561248c84242ff34dd24c6b6e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 5d8939a87356bc5721b8081d1dd1679e60653f80..ddf18bfa0d13b0facc1d275c366814c7d055da72 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r