void vFunction( void *pvParameters ) { QueueHandle_t xQueue; unsigned long ulVarToSend, ulValReceived; /* Create a queue to hold one unsigned long value. It is strongly recommended *not* to use xQueueOverwrite() on queues that can contain more than one value, and doing so will trigger an assertion if configASSERT() is defined. */ xQueue = xQueueCreate( 1, sizeof( unsigned long ) ); /* Write the value 10 to the queue using xQueueOverwrite(). */ ulVarToSend = 10; xQueueOverwrite( xQueue, &ulVarToSend ); /* Peeking the queue should now return 10, but leave the value 10 in the queue. A block time of zero is used as it is known that the queue holds a value. */ ulValReceived = 0; xQueuePeek( xQueue, &ulValReceived, 0 ); if( ulValReceived != 10 ) { /* Error, unless another task removed the value. */ } /* The queue is still full. Use xQueueOverwrite() to overwrite the value held in the queue with 100. */ ulVarToSend = 100; xQueueOverwrite( xQueue, &ulVarToSend ); /* This time read from the queue, leaving the queue empty once more. A block time of 0 is used again. */ xQueueReceive( xQueue, &ulValReceived, 0 ); /* The value read should be the last value written, even though the queue was already full when the value was written. */ if( ulValReceived != 100 ) { /* Error unless another task is using the same queue. */ } /* ... */ }
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.
|
Latest News
NXP tweet showing LPC5500 (ARMv8-M Cortex-M33) running FreeRTOS. Meet Richard Barry and learn about running FreeRTOS on RISC-V at FOSDEM 2019 Version 10.1.1 of the FreeRTOS kernel is available for immediate download. MIT licensed. View a recording of the "OTA Update Security and Reliability" webinar, presented by TI and AWS. Careers
FreeRTOS and other embedded software careers at AWS. FreeRTOS Partners
|