MessageBufferHandle_t xMessageBufferCreate( size_t xBufferSizeBytes );
Creates a new message buffer using dynamically allocated memory. See
xMessageBufferCreateStatic() for a
version that uses statically allocated memory (memory that is allocated at
must be set to 1 or left undefined in FreeRTOSConfig.h for xMessageBufferCreate()
to be available.
Message buffer functionality is enabled by including the FreeRTOS/source/stream_buffer.c
source file in the build (as message buffers use stream buffers).
The total number of bytes (not messages) the message
buffer will be able to hold at any one time. When a message is written to
the message buffer an additional sizeof( size_t ) bytes are also written to
store the message's length. sizeof( size_t ) is typically 4 bytes on a
32-bit architecture, so on most 32-bit architectures a 10 byte message will
take up 14 bytes of message buffer space.
If NULL is returned, then the message buffer cannot be created
because there is insufficient heap memory available for FreeRTOS to allocate
the message buffer data structures and storage area. A non-NULL value being
returned indicates that the message buffer has been created successfully -
the returned value should be stored as the handle to the created message
void vAFunction( void )
const size_t xMessageBufferSizeBytes = 100;
/* Create a message buffer that can hold 100 bytes. The memory used to hold
both the message buffer structure and the data in the message buffer is
allocated dynamically. */
xMessageBuffer = xMessageBufferCreate( xMessageBufferSizeBytes );
if( xMessageBuffer == NULL )
/* There was not enough heap memory space available to create the
message buffer. */
/* The message buffer was created successfully and can now be used. */
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.