]> git.sur5r.net Git - freertos/blobdiff - Demo/MSP430X_MSP430F5438_IAR/main.c
Tidy up the IAR MSP430X demo serial.c file.
[freertos] / Demo / MSP430X_MSP430F5438_IAR / main.c
index b904b10bd6fe46be0747c4cf2a59063354a2cdb7..924d3f054b689ede373692b3f39384873ff8fd06 100644 (file)
@@ -1,5 +1,5 @@
 /*\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
@@ -183,6 +183,9 @@ information.  */
 \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
@@ -266,7 +269,7 @@ void main( void )
                \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
@@ -304,6 +307,14 @@ unsigned char ucLine = 1;
        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
@@ -339,10 +350,8 @@ unsigned char ucLine = 1;
                                                                                                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
@@ -593,8 +602,8 @@ const unsigned short usACLK_Frequency_Hz = 32768;
 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