/*\r
- FreeRTOS V7.5.2 - Copyright (C) 2013 Real Time Engineers Ltd.\r
+ FreeRTOS V8.1.0 - Copyright (C) 2014 Real Time Engineers Ltd.\r
+ All rights reserved\r
\r
VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.\r
\r
the terms of the GNU General Public License (version 2) as published by the\r
Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception.\r
\r
- >>! NOTE: The modification to the GPL is included to allow you to distribute\r
- >>! a combined work that includes FreeRTOS without being obliged to provide\r
- >>! the source code for proprietary components outside of the FreeRTOS\r
- >>! kernel.\r
+ >>! NOTE: The modification to the GPL is included to allow you to !<<\r
+ >>! distribute a combined work that includes FreeRTOS without being !<<\r
+ >>! obliged to provide the source code for proprietary components !<<\r
+ >>! outside of the FreeRTOS kernel. !<<\r
\r
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY\r
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\r
* containing an unexpected value is indicative of an error in the context\r
* switching mechanism.\r
*\r
- * "Interrupt semaphore take" task - This task does nothing but block on a \r
- * semaphore that is 'given' from the tick hook function (which is defined in \r
- * main.c). It toggles the fourth LED each time it receives the semaphore. The \r
+ * "Interrupt semaphore take" task - This task does nothing but block on a\r
+ * semaphore that is 'given' from the tick hook function (which is defined in\r
+ * main.c). It toggles the fourth LED each time it receives the semaphore. The\r
* Semahore is given every 50ms, so LED 4 toggles every 50ms.\r
*\r
* "Flash timers" - A software timer callback function is defined that does\r
\r
/* The period after which the check timer will expire provided no errors have\r
been reported by any of the standard demo tasks. ms are converted to the\r
-equivalent in ticks using the portTICK_RATE_MS constant. */\r
-#define mainCHECK_TIMER_PERIOD_MS ( 3000UL / portTICK_RATE_MS )\r
+equivalent in ticks using the portTICK_PERIOD_MS constant. */\r
+#define mainCHECK_TIMER_PERIOD_MS ( 3000UL / portTICK_PERIOD_MS )\r
\r
/* The period at which the check timer will expire if an error has been\r
reported in one of the standard demo tasks. ms are converted to the equivalent\r
-in ticks using the portTICK_RATE_MS constant. */\r
-#define mainERROR_CHECK_TIMER_PERIOD_MS ( 200UL / portTICK_RATE_MS )\r
+in ticks using the portTICK_PERIOD_MS constant. */\r
+#define mainERROR_CHECK_TIMER_PERIOD_MS ( 200UL / portTICK_PERIOD_MS )\r
\r
/* A block time of zero simply means "don't block". */\r
#define mainDONT_BLOCK ( 0UL )\r
\r
/* The base toggle rate used by the flash timers. Each toggle rate is a\r
multiple of this. */\r
-#define mainFLASH_TIMER_BASE_RATE ( 200UL / portTICK_RATE_MS )\r
+#define mainFLASH_TIMER_BASE_RATE ( 200UL / portTICK_PERIOD_MS )\r
\r
/* The LED toggle by the check timer. */\r
#define mainCHECK_LED ( 4 )\r
/*\r
* The check timer callback function, as described at the top of this file.\r
*/\r
-static void prvCheckTimerCallback( xTimerHandle xTimer );\r
+static void prvCheckTimerCallback( TimerHandle_t xTimer );\r
\r
/*\r
* The flash timer callback function, as described at the top of this file.\r
* This callback function is assigned to three separate software timers.\r
*/\r
-static void prvFlashTimerCallback( xTimerHandle xTimer );\r
+static void prvFlashTimerCallback( TimerHandle_t xTimer );\r
\r
/*\r
* The task that toggles an LED each time the semaphore 'given' by the tick\r
/* The semaphore that is given by the tick hook function (defined in main.c)\r
and taken by the task implemented by the prvSemaphoreTakeTask() function. The\r
task toggles LED mainSEMAPHORE_LED each time the semaphore is taken. */\r
-xSemaphoreHandle xLEDSemaphore = NULL;\r
+SemaphoreHandle_t xLEDSemaphore = NULL;\r
/*-----------------------------------------------------------*/\r
\r
void main_full( void )\r
{\r
-xTimerHandle xTimer = NULL;\r
+TimerHandle_t xTimer = NULL;\r
unsigned long ulTimer;\r
const unsigned long ulTimersToCreate = 3L;\r
/* The register test tasks are asm functions that don't use a stack. The\r
toggles an LED each time the semaphore is given. */\r
vSemaphoreCreateBinary( xLEDSemaphore );\r
xTaskCreate( prvSemaphoreTakeTask, /* Function that implements the task. */\r
- ( signed char * ) "Sem", /* Text name of the task. */\r
+ "Sem", /* Text name of the task. */\r
configMINIMAL_STACK_SIZE, /* Stack allocated to the task (in words). */\r
NULL, /* The task parameter is not used. */\r
configMAX_PRIORITIES - 2, /* The priority of the task. */\r
These are naked functions that don't use any stack. A stack still has\r
to be allocated to hold the task context. */\r
xTaskCreate( vRegTest1Task, /* Function that implements the task. */\r
- ( signed char * ) "Reg1", /* Text name of the task. */\r
+ "Reg1", /* Text name of the task. */\r
xRegTestStackSize, /* Stack allocated to the task. */\r
NULL, /* The task parameter is not used. */\r
tskIDLE_PRIORITY, /* The priority to assign to the task. */\r
NULL ); /* Don't receive a handle back, it is not needed. */\r
\r
xTaskCreate( vRegTest2Task, /* Function that implements the task. */\r
- ( signed char * ) "Reg2", /* Text name of the task. */\r
+ "Reg2", /* Text name of the task. */\r
xRegTestStackSize, /* Stack allocated to the task. */\r
NULL, /* The task parameter is not used. */\r
tskIDLE_PRIORITY, /* The priority to assign to the task. */\r
/* Create the three flash timers. */\r
for( ulTimer = 0UL; ulTimer < ulTimersToCreate; ulTimer++ )\r
{\r
- xTimer = xTimerCreate( ( const signed char * ) "FlashTimer", /* A text name, purely to help debugging. */\r
+ xTimer = xTimerCreate( "FlashTimer", /* A text name, purely to help debugging. */\r
( mainFLASH_TIMER_BASE_RATE * ( ulTimer + 1UL ) ), /* The timer period, in this case 3000ms (3s). */\r
pdTRUE, /* This is an auto-reload timer, so xAutoReload is set to pdTRUE. */\r
( void * ) ulTimer, /* The ID is used to hold the number of the LED that will be flashed. */\r
\r
/* Create the software timer that performs the 'check' functionality,\r
as described at the top of this file. */\r
- xTimer = xTimerCreate( ( const signed char * ) "CheckTimer",/* A text name, purely to help debugging. */\r
- ( mainCHECK_TIMER_PERIOD_MS ), /* The timer period, in this case 3000ms (3s). */\r
- pdTRUE, /* This is an auto-reload timer, so xAutoReload is set to pdTRUE. */\r
- ( void * ) 0, /* The ID is not used, so can be set to anything. */\r
- prvCheckTimerCallback /* The callback function that inspects the status of all the other tasks. */\r
+ xTimer = xTimerCreate( "CheckTimer", /* A text name, purely to help debugging. */\r
+ ( mainCHECK_TIMER_PERIOD_MS ), /* The timer period, in this case 3000ms (3s). */\r
+ pdTRUE, /* This is an auto-reload timer, so xAutoReload is set to pdTRUE. */\r
+ ( void * ) 0, /* The ID is not used, so can be set to anything. */\r
+ prvCheckTimerCallback /* The callback function that inspects the status of all the other tasks. */\r
);\r
\r
/* If the software timer was created successfully, start it. It won't\r
/*-----------------------------------------------------------*/\r
\r
/* See the description at the top of this file. */\r
-static void prvCheckTimerCallback( xTimerHandle xTimer )\r
+static void prvCheckTimerCallback( TimerHandle_t xTimer )\r
{\r
static long lChangedTimerPeriodAlready = pdFALSE;\r
static unsigned long ulLastRegTest1Value = 0, ulLastRegTest2Value = 0;\r
}\r
/*-----------------------------------------------------------*/\r
\r
-static void prvFlashTimerCallback( xTimerHandle xTimer )\r
+static void prvFlashTimerCallback( TimerHandle_t xTimer )\r
{\r
unsigned long ulLED;\r
\r