StaticStreamBuffer_t *pxStaticStreamBuffer );
Creates a new stream buffer using statically allocated memory. See
xStreamBufferCreate() for a version that
uses dynamically allocated memory.
must be set to 1 in FreeRTOSConfig.h for xStreamBufferCreateStatic() to be available.
Stream buffer functionality is enabled by including the FreeRTOS/source/stream_buffer.c
source file in the build.
The size, in bytes, of the buffer pointed to by the
The number of bytes that must be in the stream
buffer before a task that is blocked on the stream buffer to wait for data is
moved out of the blocked state. For example, if a task is blocked on a read
of an empty stream buffer that has a trigger level of 1 then the task will be
unblocked when a single byte is written to the buffer or the task’s block
time expires. As another example, if a task is blocked on a read of an empty
stream buffer that has a trigger level of 10 then the task will not be
unblocked until the stream buffer contains at least 10 bytes or the task’s
block time expires. If a reading task’s block time expires before the
trigger level is reached then the task will still receive however many bytes
are actually available. Setting a trigger level of 0 will result in a
trigger level of 1 being used. It is not valid to specify a trigger level
that is greater than the buffer size.
Must point to a uint8_t array that is at least
xBufferSizeBytes + 1 big. This is the array to which streams
are copied when they are written to the stream buffer.
Must point to a variable of type StaticStreamBuffer_t, which
will be used to hold the stream buffer’s data structure.
If the stream buffer is created successfully then a handle to the
created stream buffer is returned. If either pucStreamBufferStorageArea or
pxStaticstreamBuffer are NULL then NULL is returned.
/* Used to dimension the array used to hold the streams. The available space
will actually be one less than this, so 999. */
#define STORAGE_SIZE_BYTES 1000
/* Defines the memory that will actually hold the streams within the stream
static uint8_t ucBufferStorage[ STORAGE_SIZE_BYTES ];
/* The variable used to hold the stream buffer structure. */
void MyFunction( void )
const size_t xTriggerLevel = 1;
xStreamBuffer = xStreamBufferCreateStatic( sizeof( ucBufferStorage ),
/* As neither the pucStreamBufferStorageArea or pxStaticStreamBuffer
parameters were NULL, xStreamBuffer will not be NULL, and can be used to
reference the created stream buffer in other stream buffer API calls. */
/* Other code that uses the stream buffer can go here. */
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.