struct AMessage { char ucMessageID; char ucData[ 20 ]; } xMessage; unsigned long ulVar = 10UL; void vATask( void *pvParameters ) { QueueHandle_t xQueue1, xQueue2; struct AMessage *pxMessage; /* Create a queue capable of containing 10 unsigned long values. */ xQueue1 = xQueueCreate( 10, sizeof( unsigned long ) ); /* Create a queue capable of containing 10 pointers to AMessage structures. These should be passed by pointer as they contain a lot of data. */ xQueue2 = xQueueCreate( 10, sizeof( struct AMessage * ) ); /* ... */ if( xQueue1 != 0 ) { /* Send an unsigned long. Wait for 10 ticks for space to become available if necessary. */ if( xQueueSendToBack( xQueue1, ( void * ) &ulVar, ( TickType_t ) 10 ) != pdPASS ) { /* Failed to post the message, even after 10 ticks. */ } } if( xQueue2 != 0 ) { /* Send a pointer to a struct AMessage object. Don't block if the queue is already full. */ pxMessage = & xMessage; xQueueSendToBack( xQueue2, ( void * ) &pxMessage, ( TickType_t ) 0 ); } /* ... Rest of task code. */ }
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
|