|
|
@ -43,12 +43,12 @@
|
|
|
|
* writer and reader to be different tasks or interrupts, but, unlike other
|
|
|
|
* writer and reader to be different tasks or interrupts, but, unlike other
|
|
|
|
* FreeRTOS objects, it is not safe to have multiple different writers or
|
|
|
|
* FreeRTOS objects, it is not safe to have multiple different writers or
|
|
|
|
* multiple different readers. If there are to be multiple different writers
|
|
|
|
* multiple different readers. If there are to be multiple different writers
|
|
|
|
* then the application writer must place each call to a writing API function
|
|
|
|
* then the application writer must serialize calls to writing API functions
|
|
|
|
* (such as xMessageBufferSend()) inside a critical section and set the send
|
|
|
|
* (such as xStreamBufferSend()). Likewise, if there are to be multiple
|
|
|
|
* block time to 0. Likewise, if there are to be multiple different readers
|
|
|
|
* different readers then the application writer must serialize calls to reading
|
|
|
|
* then the application writer must place each call to a reading API function
|
|
|
|
* API functions (such as xStreamBufferReceive()). One way to achieve such
|
|
|
|
* (such as xMessageBufferRead()) inside a critical section and set the receive
|
|
|
|
* serialization in single core or SMP kernel is to place each API call inside a
|
|
|
|
* timeout to 0.
|
|
|
|
* critical section and use a block time of 0.
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* Message buffers hold variable length messages. To enable that, when a
|
|
|
|
* Message buffers hold variable length messages. To enable that, when a
|
|
|
|
* message is written to the message buffer an additional sizeof( size_t ) bytes
|
|
|
|
* message is written to the message buffer an additional sizeof( size_t ) bytes
|
|
|
@ -306,12 +306,12 @@ typedef StreamBufferHandle_t MessageBufferHandle_t;
|
|
|
|
* writer and reader to be different tasks or interrupts, but, unlike other
|
|
|
|
* writer and reader to be different tasks or interrupts, but, unlike other
|
|
|
|
* FreeRTOS objects, it is not safe to have multiple different writers or
|
|
|
|
* FreeRTOS objects, it is not safe to have multiple different writers or
|
|
|
|
* multiple different readers. If there are to be multiple different writers
|
|
|
|
* multiple different readers. If there are to be multiple different writers
|
|
|
|
* then the application writer must place each call to a writing API function
|
|
|
|
* then the application writer must serialize calls to writing API functions
|
|
|
|
* (such as xMessageBufferSend()) inside a critical section and set the send
|
|
|
|
* (such as xStreamBufferSend()). Likewise, if there are to be multiple
|
|
|
|
* block time to 0. Likewise, if there are to be multiple different readers
|
|
|
|
* different readers then the application writer must serialize calls to reading
|
|
|
|
* then the application writer must place each call to a reading API function
|
|
|
|
* API functions (such as xStreamBufferReceive()). One way to achieve such
|
|
|
|
* (such as xMessageBufferRead()) inside a critical section and set the receive
|
|
|
|
* serialization in single core or SMP kernel is to place each API call inside a
|
|
|
|
* block time to 0.
|
|
|
|
* critical section and use a block time of 0.
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* Use xMessageBufferSend() to write to a message buffer from a task. Use
|
|
|
|
* Use xMessageBufferSend() to write to a message buffer from a task. Use
|
|
|
|
* xMessageBufferSendFromISR() to write to a message buffer from an interrupt
|
|
|
|
* xMessageBufferSendFromISR() to write to a message buffer from an interrupt
|
|
|
@ -409,12 +409,12 @@ typedef StreamBufferHandle_t MessageBufferHandle_t;
|
|
|
|
* writer and reader to be different tasks or interrupts, but, unlike other
|
|
|
|
* writer and reader to be different tasks or interrupts, but, unlike other
|
|
|
|
* FreeRTOS objects, it is not safe to have multiple different writers or
|
|
|
|
* FreeRTOS objects, it is not safe to have multiple different writers or
|
|
|
|
* multiple different readers. If there are to be multiple different writers
|
|
|
|
* multiple different readers. If there are to be multiple different writers
|
|
|
|
* then the application writer must place each call to a writing API function
|
|
|
|
* then the application writer must serialize calls to writing API functions
|
|
|
|
* (such as xMessageBufferSend()) inside a critical section and set the send
|
|
|
|
* (such as xStreamBufferSend()). Likewise, if there are to be multiple
|
|
|
|
* block time to 0. Likewise, if there are to be multiple different readers
|
|
|
|
* different readers then the application writer must serialize calls to reading
|
|
|
|
* then the application writer must place each call to a reading API function
|
|
|
|
* API functions (such as xStreamBufferReceive()). One way to achieve such
|
|
|
|
* (such as xMessageBufferRead()) inside a critical section and set the receive
|
|
|
|
* serialization in single core or SMP kernel is to place each API call inside a
|
|
|
|
* block time to 0.
|
|
|
|
* critical section and use a block time of 0.
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* Use xMessageBufferSend() to write to a message buffer from a task. Use
|
|
|
|
* Use xMessageBufferSend() to write to a message buffer from a task. Use
|
|
|
|
* xMessageBufferSendFromISR() to write to a message buffer from an interrupt
|
|
|
|
* xMessageBufferSendFromISR() to write to a message buffer from an interrupt
|
|
|
@ -516,12 +516,12 @@ typedef StreamBufferHandle_t MessageBufferHandle_t;
|
|
|
|
* writer and reader to be different tasks or interrupts, but, unlike other
|
|
|
|
* writer and reader to be different tasks or interrupts, but, unlike other
|
|
|
|
* FreeRTOS objects, it is not safe to have multiple different writers or
|
|
|
|
* FreeRTOS objects, it is not safe to have multiple different writers or
|
|
|
|
* multiple different readers. If there are to be multiple different writers
|
|
|
|
* multiple different readers. If there are to be multiple different writers
|
|
|
|
* then the application writer must place each call to a writing API function
|
|
|
|
* then the application writer must serialize calls to writing API functions
|
|
|
|
* (such as xMessageBufferSend()) inside a critical section and set the send
|
|
|
|
* (such as xStreamBufferSend()). Likewise, if there are to be multiple
|
|
|
|
* block time to 0. Likewise, if there are to be multiple different readers
|
|
|
|
* different readers then the application writer must serialize calls to reading
|
|
|
|
* then the application writer must place each call to a reading API function
|
|
|
|
* API functions (such as xStreamBufferReceive()). One way to achieve such
|
|
|
|
* (such as xMessageBufferRead()) inside a critical section and set the receive
|
|
|
|
* serialization in single core or SMP kernel is to place each API call inside a
|
|
|
|
* block time to 0.
|
|
|
|
* critical section and use a block time of 0.
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* Use xMessageBufferReceive() to read from a message buffer from a task. Use
|
|
|
|
* Use xMessageBufferReceive() to read from a message buffer from a task. Use
|
|
|
|
* xMessageBufferReceiveFromISR() to read from a message buffer from an
|
|
|
|
* xMessageBufferReceiveFromISR() to read from a message buffer from an
|
|
|
@ -610,12 +610,12 @@ typedef StreamBufferHandle_t MessageBufferHandle_t;
|
|
|
|
* writer and reader to be different tasks or interrupts, but, unlike other
|
|
|
|
* writer and reader to be different tasks or interrupts, but, unlike other
|
|
|
|
* FreeRTOS objects, it is not safe to have multiple different writers or
|
|
|
|
* FreeRTOS objects, it is not safe to have multiple different writers or
|
|
|
|
* multiple different readers. If there are to be multiple different writers
|
|
|
|
* multiple different readers. If there are to be multiple different writers
|
|
|
|
* then the application writer must place each call to a writing API function
|
|
|
|
* then the application writer must serialize calls to writing API functions
|
|
|
|
* (such as xMessageBufferSend()) inside a critical section and set the send
|
|
|
|
* (such as xStreamBufferSend()). Likewise, if there are to be multiple
|
|
|
|
* block time to 0. Likewise, if there are to be multiple different readers
|
|
|
|
* different readers then the application writer must serialize calls to reading
|
|
|
|
* then the application writer must place each call to a reading API function
|
|
|
|
* API functions (such as xStreamBufferReceive()). One way to achieve such
|
|
|
|
* (such as xMessageBufferRead()) inside a critical section and set the receive
|
|
|
|
* serialization in single core or SMP kernel is to place each API call inside a
|
|
|
|
* block time to 0.
|
|
|
|
* critical section and use a block time of 0.
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* Use xMessageBufferReceive() to read from a message buffer from a task. Use
|
|
|
|
* Use xMessageBufferReceive() to read from a message buffer from a task. Use
|
|
|
|
* xMessageBufferReceiveFromISR() to read from a message buffer from an
|
|
|
|
* xMessageBufferReceiveFromISR() to read from a message buffer from an
|
|
|
|