/*\r
- FreeRTOS.org V4.0.2 - Copyright (C) 2003-2006 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
- See http://www.FreeRTOS.org for documentation, latest information, license \r
- and contact details. Please ensure to read the configuration and relevant \r
- port sections of the online documentation.\r
- ***************************************************************************\r
+ FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd.\r
+ \r
+\r
+ ***************************************************************************\r
+ * *\r
+ * FreeRTOS tutorial books are available in pdf and paperback. *\r
+ * Complete, revised, and edited pdf reference manuals are also *\r
+ * available. *\r
+ * *\r
+ * Purchasing FreeRTOS documentation will not only help you, by *\r
+ * ensuring you get running as quickly as possible and with an *\r
+ * in-depth knowledge of how to use FreeRTOS, it will also help *\r
+ * the FreeRTOS project to continue with its mission of providing *\r
+ * professional grade, cross platform, de facto standard solutions *\r
+ * for microcontrollers - completely free of charge! *\r
+ * *\r
+ * >>> See http://www.FreeRTOS.org/Documentation for details. <<< *\r
+ * *\r
+ * Thank you for using FreeRTOS, and thank you for your support! *\r
+ * *\r
+ ***************************************************************************\r
+\r
+\r
+ This file is part of the FreeRTOS distribution.\r
+\r
+ FreeRTOS is free software; you can redistribute it and/or modify it under\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
+ >>>NOTE<<< The modification to the GPL is included to allow you to\r
+ distribute a combined work that includes FreeRTOS without being obliged to\r
+ provide the source code for proprietary components outside of the FreeRTOS\r
+ kernel. FreeRTOS is distributed in the hope that it will be useful, but\r
+ WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\r
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for\r
+ more details. You should have received a copy of the GNU General Public\r
+ License and the FreeRTOS license exception along with FreeRTOS; if not it\r
+ can be viewed here: http://www.freertos.org/a00114.html and also obtained\r
+ by writing to Richard Barry, contact details for whom are available on the\r
+ FreeRTOS WEB site.\r
+\r
+ 1 tab == 4 spaces!\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
\r
/* Constants for the ComTest tasks. */\r
-#define mainCOM_TEST_BAUD_RATE ( ( unsigned portLONG ) 115200 )\r
+#define mainCOM_TEST_BAUD_RATE ( ( unsigned long ) 115200 )\r
#define mainCOM_TEST_LED ( 5 )\r
\r
/* Priorities for the demo application tasks. */\r
error. */\r
#define mainNO_ERROR_FLASH_PERIOD ( ( portTickType ) 3000 / portTICK_RATE_MS )\r
#define mainERROR_FLASH_PERIOD ( ( portTickType ) 500 / portTICK_RATE_MS )\r
-#define mainON_BOARD_LED_BIT ( ( unsigned portLONG ) 7 )\r
+#define mainON_BOARD_LED_BIT ( ( unsigned long ) 7 )\r
\r
/* Constants used by the vMemCheckTask() task. */\r
-#define mainCOUNT_INITIAL_VALUE ( ( unsigned portLONG ) 0 )\r
+#define mainCOUNT_INITIAL_VALUE ( ( unsigned long ) 0 )\r
#define mainNO_TASK ( 0 )\r
\r
/* The size of the memory blocks allocated by the vMemCheckTask() task. */\r
#define mainMEM_CHECK_SIZE_3 ( ( size_t ) 151 )\r
\r
#define MAX_WAIT_STATES 8\r
-static const unsigned portLONG ululCSRWaitValues[ MAX_WAIT_STATES + 1 ] =\r
+static const unsigned long ululCSRWaitValues[ MAX_WAIT_STATES + 1 ] =\r
{\r
WaitState1,/* There is no "zero wait state" value, so use one wait state */\r
WaitState1,\r
* Checks that all the demo application tasks are still executing without error\r
* - as described at the top of the file.\r
*/\r
-static portLONG prvCheckOtherTasksAreStillRunning( unsigned portLONG ulMemCheckTaskCount );\r
+static long prvCheckOtherTasksAreStillRunning( unsigned long ulMemCheckTaskCount );\r
\r
/*\r
* The task that executes at the highest priority and calls \r
vStartBlockingQueueTasks( mainBLOCK_Q_PRIORITY );\r
\r
/* Start the check task - which is defined in this file. */\r
- xTaskCreate( vErrorChecks, ( signed portCHAR * ) "Check", configMINIMAL_STACK_SIZE, NULL, mainCHECK_TASK_PRIORITY, NULL );\r
+ xTaskCreate( vErrorChecks, ( signed char * ) "Check", configMINIMAL_STACK_SIZE, NULL, mainCHECK_TASK_PRIORITY, NULL );\r
\r
/* Now all the tasks have been started - start the scheduler.\r
\r
static void vErrorChecks( void *pvParameters )\r
{\r
portTickType xDelayPeriod = mainNO_ERROR_FLASH_PERIOD;\r
-unsigned portLONG ulMemCheckTaskRunningCount;\r
+unsigned long ulMemCheckTaskRunningCount;\r
xTaskHandle xCreatedTask;\r
\r
+ /* Just to stop compiler warnings. */\r
+ ( void ) pvParameters;\r
+\r
/* Cycle for ever, delaying then checking all the other tasks are still\r
operating without error. If an error is detected then the delay period\r
is decreased from mainNO_ERROR_FLASH_PERIOD to mainERROR_FLASH_PERIOD so\r
/* Dynamically create a task - passing ulMemCheckTaskRunningCount as a \r
parameter. */\r
ulMemCheckTaskRunningCount = mainCOUNT_INITIAL_VALUE; \r
- if( xTaskCreate( vMemCheckTask, ( signed portCHAR * ) "MEM_CHECK", configMINIMAL_STACK_SIZE, ( void * ) &ulMemCheckTaskRunningCount, tskIDLE_PRIORITY, &xCreatedTask ) != pdPASS )\r
+ if( xTaskCreate( vMemCheckTask, ( signed char * ) "MEM_CHECK", configMINIMAL_STACK_SIZE, ( void * ) &ulMemCheckTaskRunningCount, tskIDLE_PRIORITY, &xCreatedTask ) != pdPASS )\r
{\r
/* Could not create the task - we have probably run out of heap. */\r
xDelayPeriod = mainERROR_FLASH_PERIOD;\r
\r
static void prvSetupHardware( void )\r
{\r
-portLONG lCount;\r
+long lCount;\r
\r
#ifdef RUN_FROM_ROM\r
{\r
portFLOAT nsecsPerClockTick;\r
- portLONG lNumWaitStates;\r
- unsigned portLONG ulCSRWaitValue;\r
+ long lNumWaitStates;\r
+ unsigned long ulCSRWaitValue;\r
\r
/* We are compiling to run from ROM (either on-chip or off-chip flash).\r
Leave the RAM/flash mapped the way they are on reset\r
based on constants. But the compiler should still produce\r
a correct wait state register value. */\r
nsecsPerClockTick = ( portFLOAT ) 1000000000 / configCPU_CLOCK_HZ;\r
- lNumWaitStates = ( portLONG )( ( configFLASH_SPEED_NSEC / nsecsPerClockTick ) + 0.5 ) - 1;\r
+ lNumWaitStates = ( long )( ( configFLASH_SPEED_NSEC / nsecsPerClockTick ) + 0.5 ) - 1;\r
\r
if( lNumWaitStates < 0 )\r
{\r
}\r
/*-----------------------------------------------------------*/\r
\r
-static portLONG prvCheckOtherTasksAreStillRunning( unsigned portLONG ulMemCheckTaskCount )\r
+static long prvCheckOtherTasksAreStillRunning( unsigned long ulMemCheckTaskCount )\r
{\r
-portLONG lReturn = ( portLONG ) pdPASS;\r
+long lReturn = ( long ) pdPASS;\r
\r
/* Check all the demo tasks (other than the flash tasks) to ensure\r
that they are all still running, and that none of them have detected\r
\r
if( xAreIntegerMathsTaskStillRunning() != pdTRUE )\r
{\r
- lReturn = ( portLONG ) pdFAIL;\r
+ lReturn = ( long ) pdFAIL;\r
}\r
\r
if( xAreComTestTasksStillRunning() != pdTRUE )\r
{\r
- lReturn = ( portLONG ) pdFAIL;\r
+ lReturn = ( long ) pdFAIL;\r
}\r
\r
if( xArePollingQueuesStillRunning() != pdTRUE )\r
{\r
- lReturn = ( portLONG ) pdFAIL;\r
+ lReturn = ( long ) pdFAIL;\r
}\r
\r
if( xAreMathsTaskStillRunning() != pdTRUE )\r
{\r
- lReturn = ( portLONG ) pdFAIL;\r
+ lReturn = ( long ) pdFAIL;\r
}\r
\r
if( xAreSemaphoreTasksStillRunning() != pdTRUE )\r
{\r
- lReturn = ( portLONG ) pdFAIL;\r
+ lReturn = ( long ) pdFAIL;\r
}\r
\r
if( xAreDynamicPriorityTasksStillRunning() != pdTRUE )\r
{\r
- lReturn = ( portLONG ) pdFAIL;\r
+ lReturn = ( long ) pdFAIL;\r
}\r
\r
if( xAreBlockingQueuesStillRunning() != pdTRUE )\r
{\r
- lReturn = ( portLONG ) pdFAIL;\r
+ lReturn = ( long ) pdFAIL;\r
}\r
\r
if( ulMemCheckTaskCount == mainCOUNT_INITIAL_VALUE )\r
{\r
/* The vMemCheckTask did not increment the counter - it must\r
have failed. */\r
- lReturn = ( portLONG ) pdFAIL;\r
+ lReturn = ( long ) pdFAIL;\r
}\r
\r
return lReturn;\r
\r
static void vMemCheckTask( void *pvParameters )\r
{\r
-unsigned portLONG *pulMemCheckTaskRunningCounter;\r
+unsigned long *pulMemCheckTaskRunningCounter;\r
void *pvMem1, *pvMem2, *pvMem3;\r
-static portLONG lErrorOccurred = pdFALSE;\r
+static long lErrorOccurred = pdFALSE;\r
\r
/* This task is dynamically created then deleted during each cycle of the\r
vErrorChecks task to check the operation of the memory allocator. Each time\r
pulMemCheckTaskRunningCounter is incremented each cycle to indicate to the\r
vErrorChecks() task that this task is still executing without error. */\r
\r
- pulMemCheckTaskRunningCounter = ( unsigned portLONG * ) pvParameters;\r
+ pulMemCheckTaskRunningCounter = ( unsigned long * ) pvParameters;\r
\r
for( ;; )\r
{\r