/*\r
- FreeRTOS V6.1.0 - Copyright (C) 2010 Real Time Engineers Ltd.\r
+ FreeRTOS V6.1.1 - Copyright (C) 2011 Real Time Engineers Ltd.\r
\r
***************************************************************************\r
* *\r
* error has occurred. The nature of the reg test tasks necessitates that they\r
* are written in assembly code.\r
*\r
- * *NOTE 2* vApplicationSetupTimerInterrupt() is called by the kernel to let\r
+ * *NOTE 1* vApplicationSetupTimerInterrupt() is called by the kernel to let\r
* the application set up a timer to generate the tick interrupt. In this\r
* example a timer A0 is used for this purpose.\r
*\r
\r
/* The maximum number of lines of text that can be displayed on the LCD. */\r
#define mainMAX_LCD_LINES ( 8 )\r
+\r
+/* Just used to ensure parameters are passed into tasks correctly. */\r
+#define mainTASK_PARAMETER_CHECK_VALUE ( ( void * ) 0xDEAD )\r
/*-----------------------------------------------------------*/\r
\r
/*\r
\r
/* Create the LCD, button poll and register test tasks, as described at\r
the top of this file. */\r
- xTaskCreate( prvLCDTask, ( signed char * ) "LCD", configMINIMAL_STACK_SIZE * 2, NULL, mainLCD_TASK_PRIORITY, NULL );\r
+ xTaskCreate( prvLCDTask, ( signed char * ) "LCD", configMINIMAL_STACK_SIZE * 2, mainTASK_PARAMETER_CHECK_VALUE, mainLCD_TASK_PRIORITY, NULL );\r
xTaskCreate( prvButtonPollTask, ( signed char * ) "BPoll", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL );\r
xTaskCreate( vRegTest1Task, ( signed char * ) "Reg1", configMINIMAL_STACK_SIZE, NULL, 0, NULL );\r
xTaskCreate( vRegTest2Task, ( signed char * ) "Reg2", configMINIMAL_STACK_SIZE, NULL, 0, NULL );\r
First print out the number of bytes that remain in the FreeRTOS heap. This\r
can be viewed in the terminal IO window within the IAR Embedded Workbench. */\r
printf( "%d bytes of heap space remain unallocated\n", ( int ) xPortGetFreeHeapSize() );\r
+ \r
+ /* Just as a test of the port, and for no functional reason, check the task\r
+ parameter contains its expected value. */\r
+ if( pvParameters != mainTASK_PARAMETER_CHECK_VALUE )\r
+ {\r
+ halLcdPrintLine( "Invalid parameter", ucLine, OVERWRITE_TEXT );\r
+ ucLine++; \r
+ }\r
\r
for( ;; )\r
{\r
the terminal IO window in the IAR\r
embedded workbench. */\r
printf( "\nTask\t Abs Time\t %%Time\n*****************************************" );\r
- fflush( stdout );\r
vTaskGetRunTimeStats( ( signed char * ) cBuffer );\r
printf( cBuffer );\r
- fflush( stdout );\r
\r
/* Also print out a message to\r
the LCD - in this case the\r
void vApplicationIdleHook( void )\r
{\r
/* Called on each iteration of the idle task. In this case the idle task\r
- just enters a low(ish) power mode. */\r
- __bis_SR_register( LPM1_bits + GIE );\r
+ just enters a low power mode. */\r
+ __bis_SR_register( LPM3_bits + GIE );\r
}\r
/*-----------------------------------------------------------*/\r
\r