|  
						
 
 
stream_buffer.h
StreamBufferHandle_t xStreamBufferCreateStatic(
                                    size_t xBufferSizeBytes,
                                    size_t xTriggerLevelBytes,
                                    uint8_t *pucStreamBufferStorageArea,
                                    StaticStreamBuffer_t *pxStaticStreamBuffer );
 
Creates a new stream buffer using statically allocated memory.  See
xStreamBufferCreate() for a version that
uses dynamically allocated memory.
 
configSUPPORT_STATIC_ALLOCATION
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.
 
	- 
		
			Parameters:
		
	
 
	- 
	
		
			| 
				
					
						xBufferSizeBytes
					
				
				 
			 | 
			
				
					The size, in bytes, of the buffer pointed to by the
					pucStreamBufferStorageArea parameter.
				
			 | 
		 
		
			| 
				
					
						xTriggerLevelBytes
					
				
				 
			 | 
			
				
					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.
				
			 | 
		 
		
			| 
				
					
						pucStreamBufferStorageArea
					
				
				 
			 | 
			
				
					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.
				
			 | 
		 
		
			| 
				
					
						pxStaticStreamBuffer
					
				
				 
			 | 
			
				
					Must point to a variable of type StaticStreamBuffer_t, which
					will be used to hold the stream buffer's data structure.
				
			 | 
		 
  
  
	- 
		
			Returns:
		
	
 
	- 
		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.
 
 
 
 
Example usage:
 
/* 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
buffer. */
static uint8_t ucBufferStorage[ STORAGE_SIZE_BYTES ];
/* The variable used to hold the stream buffer structure. */
StaticStreamBuffer_t xStreamBufferStruct;
void MyFunction( void )
{
StreamBufferHandle_t xStreamBuffer;
const size_t xTriggerLevel = 1;
    xStreamBuffer = xStreamBufferCreateStatic( sizeof( ucBufferStorage ),
                                               xTriggerLevel,
                                               ucBufferStorage,
                                               &xStreamBufferStruct );
    /* 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.  
							
						 
					 |