/*\r
- FreeRTOS V5.4.1 - Copyright (C) 2009 Real Time Engineers Ltd.\r
+ FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.\r
\r
- This file is part of the FreeRTOS distribution.\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 exception to the GPL is included to allow you to distribute a\r
- combined work that includes FreeRTOS without being obliged to provide the \r
- source code for proprietary components outside of the FreeRTOS kernel. \r
- Alternative commercial license and support terms are also available upon \r
- request. See the licensing section of http://www.FreeRTOS.org for full \r
- license details.\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 exception to the GPL is included to allow you to distribute a\r
+ combined work that includes FreeRTOS without being obliged to provide the\r
+ source code for proprietary components outside of the FreeRTOS kernel.\r
+ Alternative commercial license and support terms are also available upon\r
+ request. See the licensing section of http://www.FreeRTOS.org for full\r
+ license details.\r
\r
- FreeRTOS is distributed in the hope that it will be useful, but WITHOUT\r
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or\r
- FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for\r
- more details.\r
+ FreeRTOS is distributed in the hope that it will be useful, but WITHOUT\r
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or\r
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for\r
+ more details.\r
\r
- You should have received a copy of the GNU General Public License along\r
- with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59\r
- Temple Place, Suite 330, Boston, MA 02111-1307 USA.\r
+ You should have received a copy of the GNU General Public License along\r
+ with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59\r
+ Temple Place, Suite 330, Boston, MA 02111-1307 USA.\r
\r
\r
- ***************************************************************************\r
- * *\r
- * Looking for a quick start? Then check out the FreeRTOS eBook! *\r
- * See http://www.FreeRTOS.org/Documentation for details *\r
- * *\r
- ***************************************************************************\r
+ ***************************************************************************\r
+ * *\r
+ * The FreeRTOS eBook and reference manual are available to purchase for a *\r
+ * small fee. Help yourself get started quickly while also helping the *\r
+ * FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *\r
+ * *\r
+ ***************************************************************************\r
\r
- 1 tab == 4 spaces!\r
+ 1 tab == 4 spaces!\r
\r
- Please ensure to read the configuration and relevant port sections of the\r
- online documentation.\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
+ 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
+ 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
+ http://www.OpenRTOS.com - Commercial support, development, porting,\r
+ licensing and training services.\r
*/\r
\r
/*\r
#include "semtest.h"\r
\r
/* Hardware configuration definitions. */\r
-#define mainBUS_CLK_FULL ( ( unsigned portCHAR ) 0x01 )\r
+#define mainBUS_CLK_FULL ( ( unsigned char ) 0x01 )\r
#define mainLED_BIT 0x80000000\r
#define mainP0_14__EINT_1 ( 2 << 28 )\r
#define mainEINT_1_EDGE_SENSITIVE 2\r
VPBDIV = mainBUS_CLK_FULL;\r
\r
/* Create the queue used to pass message to vPrintTask. */\r
- xPrintQueue = xQueueCreate( mainQUEUE_SIZE, sizeof( portCHAR * ) );\r
+ xPrintQueue = xQueueCreate( mainQUEUE_SIZE, sizeof( char * ) );\r
\r
/* Create the semaphore used to wake vButtonHandlerTask(). */\r
vSemaphoreCreateBinary( xButtonSemaphore );\r
vStartRecursiveMutexTasks();\r
\r
/* Start the tasks defined within this file. */\r
- xTaskCreate( vLEDTask, "LED", configMINIMAL_STACK_SIZE, NULL, mainLED_TASK_PRIORITY, NULL );\r
- xTaskCreate( vCheckTask, "Check", configMINIMAL_STACK_SIZE, NULL, mainCHECK_TASK_PRIORITY, NULL );\r
- xTaskCreate( vPrintTask, "Print", configMINIMAL_STACK_SIZE, NULL, mainPRINT_TASK_PRIORITY, NULL );\r
- xTaskCreate( vButtonHandlerTask, "Button", configMINIMAL_STACK_SIZE, NULL, mainCHECK_TASK_PRIORITY, NULL );\r
+ xTaskCreate( vLEDTask, ( signed char * ) "LED", configMINIMAL_STACK_SIZE, NULL, mainLED_TASK_PRIORITY, NULL );\r
+ xTaskCreate( vCheckTask, ( signed char * ) "Check", configMINIMAL_STACK_SIZE, NULL, mainCHECK_TASK_PRIORITY, NULL );\r
+ xTaskCreate( vPrintTask, ( signed char * ) "Print", configMINIMAL_STACK_SIZE, NULL, mainPRINT_TASK_PRIORITY, NULL );\r
+ xTaskCreate( vButtonHandlerTask, ( signed char * ) "Button", configMINIMAL_STACK_SIZE, NULL, mainCHECK_TASK_PRIORITY, NULL );\r
\r
/* Start the scheduler. */\r
vTaskStartScheduler();\r
\r
static void vLEDTask( void *pvParameters )\r
{\r
+ /* Just to remove compiler warnings. */\r
+ ( void ) pvParameters;\r
+\r
/* Configure IO. */\r
IO0DIR |= mainLED_BIT;\r
IO0SET = mainLED_BIT;\r
{\r
portBASE_TYPE xErrorOccurred = pdFALSE;\r
portTickType xLastExecutionTime;\r
-const portCHAR * const pcPassMessage = "PASS\n";\r
-const portCHAR * const pcFailMessage = "FAIL\n";\r
+const char * const pcPassMessage = "PASS\n";\r
+const char * const pcFailMessage = "FAIL\n";\r
+\r
+ /* Just to remove compiler warnings. */\r
+ ( void ) pvParameters;\r
\r
/* Initialise xLastExecutionTime so the first call to vTaskDelayUntil()\r
works correctly. */\r
\r
static void vPrintTask( void *pvParameters )\r
{\r
-portCHAR *pcMessage;\r
+char *pcMessage;\r
+\r
+ /* Just to stop compiler warnings. */\r
+ ( void ) pvParameters;\r
\r
for( ;; )\r
{\r
\r
static void vButtonHandlerTask( void *pvParameters )\r
{\r
-static portCHAR cListBuffer[ mainLIST_BUFFER_SIZE ];\r
-const portCHAR *pcList = &( cListBuffer[ 0 ] );\r
-const portCHAR * const pcHeader = "\nTask State Priority Stack #\n************************************************";\r
+static signed char cListBuffer[ mainLIST_BUFFER_SIZE ];\r
+const signed char *pcList = &( cListBuffer[ 0 ] );\r
+const char * const pcHeader = "\nTask State Priority Stack #\n************************************************";\r
extern void (vButtonISRWrapper) ( void );\r
\r
+ /* Just to stop compiler warnings. */\r
+ ( void ) pvParameters;\r
+\r
/* Configure the interrupt. */\r
portENTER_CRITICAL();\r
{\r
/* Setup the VIC for EINT 1. */\r
VICIntSelect &= ~mainEINT_1_VIC_CHANNEL_BIT;\r
VICIntEnable |= mainEINT_1_VIC_CHANNEL_BIT;\r
- VICVectAddr1 = ( portLONG ) vButtonISRWrapper;\r
+ VICVectAddr1 = ( long ) vButtonISRWrapper;\r
VICVectCntl1 = mainEINT_1_ENABLE_BIT | mainEINT_1_CHANNEL;\r
}\r
portEXIT_CRITICAL();\r
}\r
/*-----------------------------------------------------------*/\r
\r
+void vApplicationStackOverflowHook( xTaskHandle *pxTask, signed char *pcTaskName )\r
+{\r
+ /* Check pcTaskName for the name of the offending task, or pxCurrentTCB\r
+ if pcTaskName has itself been corrupted. */\r
+ ( void ) pxTask;\r
+ ( void ) pcTaskName;\r
+ for( ;; );\r
+}\r
\r
\r
\r