* 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
+ fflush( stdout );\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