message_buffer.h
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
compile time).
configSUPPORT_DYNAMIC_ALLOCATION
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).
-
Parameters:
-
xBufferSizeBytes
|
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.
|
-
Returns:
-
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
buffer.
Example usage:
void vAFunction( void )
{
MessageBufferHandle_t xMessageBuffer;
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. */
}
else
{
/* The message buffer was created successfully and can now be used. */
}
}
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.
|