]> git.sur5r.net Git - freertos/blobdiff - FreeRTOS/Demo/Common/Minimal/QueueSet.c
Update version number to 9.0.0rc2.
[freertos] / FreeRTOS / Demo / Common / Minimal / QueueSet.c
index 8e32def38d9765f3d74444d026e68d7eff6ddd15..da688d905273c3ffe563bb66c8f209c46d786e68 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V8.2.2 - Copyright (C) 2015 Real Time Engineers Ltd.\r
+    FreeRTOS V9.0.0rc2 - Copyright (C) 2016 Real Time Engineers Ltd.\r
     All rights reserved\r
 \r
     VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.\r
@@ -8,7 +8,7 @@
 \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
+    Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.\r
 \r
     ***************************************************************************\r
     >>!   NOTE: The modification to the GPL is included to allow you to     !<<\r
@@ -122,7 +122,7 @@ queuesetPRIORITY_CHANGE_LOOPS number of values are sent to a queue. */
 /* A delay inserted when the Tx task changes its priority to be above the idle\r
 task priority to ensure the idle priority tasks get some CPU time before the\r
 next iteration of the queue set Tx task. */\r
-#define queuesetTX_LOOP_DELAY  ( 200 / portTICK_PERIOD_MS )\r
+#define queuesetTX_LOOP_DELAY  pdMS_TO_TICKS( ( TickType_t ) 200 )\r
 \r
 /* The allowable maximum deviation between a received value and the expected\r
 received value.  A deviation will occur when data is received from a queue\r
@@ -187,8 +187,8 @@ static void prvChangeRelativePriorities( void );
  * Local pseudo random number seed and return functions.  Used to avoid calls\r
  * to the standard library.\r
  */\r
-static uint32_t prvRand( void );\r
-static void prvSRand( uint32_t ulSeed );\r
+static size_t prvRand( void );\r
+static void prvSRand( size_t uxSeed );\r
 \r
 /*-----------------------------------------------------------*/\r
 \r
@@ -223,7 +223,7 @@ expected. */
 static volatile uint32_t ulISRTxValue = queuesetINITIAL_ISR_TX_VALUE;\r
 \r
 /* Used by the pseudo random number generator. */\r
-static uint32_t ulNextRand = 0;\r
+static size_t uxNextRand = 0;\r
 \r
 /* The task handles are stored so their priorities can be changed. */\r
 TaskHandle_t xQueueSetSendingTask, xQueueSetReceivingTask;\r
@@ -234,14 +234,18 @@ void vStartQueueSetTasks( void )
 {\r
        /* Create the tasks. */\r
        xTaskCreate( prvQueueSetSendingTask, "SetTx", configMINIMAL_STACK_SIZE, NULL, queuesetMEDIUM_PRIORITY, &xQueueSetSendingTask );\r
-       xTaskCreate( prvQueueSetReceivingTask, "SetRx", configMINIMAL_STACK_SIZE, ( void * ) xQueueSetSendingTask, queuesetMEDIUM_PRIORITY, &xQueueSetReceivingTask );\r
-\r
-       /* It is important that the sending task does not attempt to write to a\r
-       queue before the queue has been created.  It is therefore placed into the\r
-       suspended state before the scheduler has started.  It is resumed by the\r
-       receiving task after the receiving task has created the queues and added the\r
-       queues to the queue set. */\r
-       vTaskSuspend( xQueueSetSendingTask );\r
+\r
+       if( xQueueSetSendingTask != NULL )\r
+       {\r
+               xTaskCreate( prvQueueSetReceivingTask, "SetRx", configMINIMAL_STACK_SIZE, ( void * ) xQueueSetSendingTask, queuesetMEDIUM_PRIORITY, &xQueueSetReceivingTask );\r
+\r
+               /* It is important that the sending task does not attempt to write to a\r
+               queue before the queue has been created.  It is therefore placed into\r
+               the suspended state before the scheduler has started.  It is resumed by\r
+               the receiving task after the receiving task has created the queues and\r
+               added the queues to the queue set. */\r
+               vTaskSuspend( xQueueSetSendingTask );\r
+       }\r
 }\r
 /*-----------------------------------------------------------*/\r
 \r
@@ -295,24 +299,25 @@ BaseType_t xReturn = pdPASS, x;
 \r
 static void prvQueueSetSendingTask( void *pvParameters )\r
 {\r
-uint32_t ulTaskTxValue = 0, ulQueueToWriteTo;\r
+uint32_t ulTaskTxValue = 0;\r
+size_t uxQueueToWriteTo;\r
 QueueHandle_t xQueueInUse;\r
 \r
        /* Remove compiler warning about the unused parameter. */\r
        ( void ) pvParameters;\r
 \r
        /* Seed mini pseudo random number generator. */\r
-       prvSRand( ( uint32_t ) &ulTaskTxValue );\r
+       prvSRand( ( size_t ) &ulTaskTxValue );\r
 \r
        for( ;; )\r
        {\r
                /* Generate the index for the queue to which a value is to be sent. */\r
-               ulQueueToWriteTo = prvRand() % queuesetNUM_QUEUES_IN_SET;\r
-               xQueueInUse = xQueues[ ulQueueToWriteTo ];\r
+               uxQueueToWriteTo = prvRand() % queuesetNUM_QUEUES_IN_SET;\r
+               xQueueInUse = xQueues[ uxQueueToWriteTo ];\r
 \r
                /* Note which index is being written to to ensure all the queues are\r
                used. */\r
-               ( ulQueueUsedCounter[ ulQueueToWriteTo ] )++;\r
+               ( ulQueueUsedCounter[ uxQueueToWriteTo ] )++;\r
 \r
                /* Send to the queue to unblock the task that is waiting for data to\r
                arrive on a queue within the queue set to which this queue belongs. */\r
@@ -419,7 +424,7 @@ TickType_t xBlockTime;
                }\r
 \r
                /* Wait for a message to arrive on one of the queues in the set. */\r
-               xActivatedQueue = xQueueSelectFromSet( xQueueSet, portMAX_DELAY );              \r
+               xActivatedQueue = xQueueSelectFromSet( xQueueSet, portMAX_DELAY );\r
 \r
                if( xActivatedQueue == NULL )\r
                {\r
@@ -719,15 +724,15 @@ uint32_t ulValueToSend = 0;
 }\r
 /*-----------------------------------------------------------*/\r
 \r
-static uint32_t prvRand( void )\r
+static size_t prvRand( void )\r
 {\r
-       ulNextRand = ( ulNextRand * 1103515245UL ) + 12345UL;\r
-    return ( ulNextRand / 65536UL ) % 32768UL;\r
+       uxNextRand = ( uxNextRand * ( size_t ) 1103515245 ) + ( size_t ) 12345;\r
+       return ( uxNextRand / ( size_t ) 65536 ) % ( size_t ) 32768;\r
 }\r
 /*-----------------------------------------------------------*/\r
 \r
-static void prvSRand( uint32_t ulSeed )\r
+static void prvSRand( size_t uxSeed )\r
 {\r
-    ulNextRand = ulSeed;\r
+       uxNextRand = uxSeed;\r
 }\r
 \r