Percepio Trace Recorder v4.11.0
Loading...
Searching...
No Matches
Trace Event Buffer APIs

Data Structures

struct  TraceEventBuffer
 Trace Event Buffer Structure. More...

Macros

#define TRC_EVENT_BUFFER_OPTION_SKIP   (0U)
 Buffer should skip new events when full.
#define TRC_EVENT_BUFFER_OPTION_OVERWRITE   (1U)
 Buffer should overwrite old events when full.

Typedefs

typedef struct TraceEventBuffer TraceEventBuffer_t
 Trace Event Buffer Structure.

Functions

traceResult xTraceEventBufferAlloc (TraceEventBuffer_t *pxTraceEventBuffer, uint32_t uiSize, void **ppvData)
 Allocates a data slot directly from the event buffer.
traceResult xTraceEventBufferAllocCommit (TraceEventBuffer_t *pxTraceEventBuffer, const void *pvData, uint32_t uiSize, int32_t *piBytesWritten)
 Commits the last allocated block to the event buffer.
traceResult xTraceEventBufferPush (TraceEventBuffer_t *pxTraceEventBuffer, void *pvData, uint32_t uiSize, int32_t *piBytesWritten)
 Pushes data into trace event buffer.
traceResult xTraceEventBufferTransferAll (TraceEventBuffer_t *pxTraceEventBuffer, uint32_t uiCoreId, int32_t *piBytesWritten)
 Transfer trace event buffer data through streamport.
traceResult xTraceEventBufferTransferChunk (TraceEventBuffer_t *pxTraceEventBuffer, uint32_t uiChunkSize, uint32_t uiCoreId, int32_t *piBytesWritten)
 Transfer trace event buffer data through streamport.
traceResult xTraceEventBufferClear (TraceEventBuffer_t *pxTraceEventBuffer)
 Clears all data from event buffer.

Detailed Description

Function Documentation

◆ xTraceEventBufferAlloc()

traceResult xTraceEventBufferAlloc ( TraceEventBuffer_t * pxTraceEventBuffer,
uint32_t uiSize,
void ** ppvData )

Allocates a data slot directly from the event buffer.

Parameters
[in]pxTraceEventBufferPointer to initialized trace event buffer.
[in]uiSizeAllocation size
[out]ppvDataPointer that will hold the area from the buffer.
Return values
TRC_FAILFailure
TRC_SUCCESSSuccess

◆ xTraceEventBufferAllocCommit()

traceResult xTraceEventBufferAllocCommit ( TraceEventBuffer_t * pxTraceEventBuffer,
const void * pvData,
uint32_t uiSize,
int32_t * piBytesWritten )

Commits the last allocated block to the event buffer.

Parameters
[in]pxTraceEventBufferPointer to initialized trace event buffer.
Return values
TRC_FAILFailure
TRC_SUCCESSSuccess

◆ xTraceEventBufferClear()

traceResult xTraceEventBufferClear ( TraceEventBuffer_t * pxTraceEventBuffer)

Clears all data from event buffer.

Parameters
[in]pxTraceEventBufferPointer to initialized trace event buffer.
Return values
TRC_FAILFailure
TRC_SUCCESSSuccess

◆ xTraceEventBufferPush()

traceResult xTraceEventBufferPush ( TraceEventBuffer_t * pxTraceEventBuffer,
void * pvData,
uint32_t uiSize,
int32_t * piBytesWritten )

Pushes data into trace event buffer.

This routine attempts to push data into the trace event buffer.

Parameters
[in]pxTraceEventBufferPointer to initialized trace event buffer.
[in]pvDataPointer to data that should be pushed into trace event buffer.
[in]uiSizeSize of data.
[out]piBytesWrittenBytes written.
Return values
TRC_FAILFailure
TRC_SUCCESSSuccess

◆ xTraceEventBufferTransferAll()

traceResult xTraceEventBufferTransferAll ( TraceEventBuffer_t * pxTraceEventBuffer,
uint32_t uiCoreId,
int32_t * piBytesWritten )

Transfer trace event buffer data through streamport.

This routine will attempt to transfer all existing data in the trace event buffer through the streamport. New data pushed to the trace event buffer during the execution of this routine will not be transferred

Parameters
[in]pxTraceEventBufferPointer to initialized trace event buffer.
[in]uiCodeIdCore ID to transfer data for.
[out]piBytesWrittenBytes written.
Return values
TRC_FAILFailure
TRC_SUCCESSSuccess

◆ xTraceEventBufferTransferChunk()

traceResult xTraceEventBufferTransferChunk ( TraceEventBuffer_t * pxTraceEventBuffer,
uint32_t uiChunkSize,
uint32_t uiCoreId,
int32_t * piBytesWritten )

Transfer trace event buffer data through streamport.

This routine will attempt to transfer a chunk of existing data in the trace event buffer through the streamport. New data pushed to the trace event buffer during the execution of this routine will not be transfered.

When transferring a chunk which wraps the buffer, a singular transfer is made to avoid issuing dual writes. This configuration means that during wrapping, the chunk might be reduced in size even if there is more data at the start of the buffer. To transfer more data check piBytesWritten and issue multiple transfers if required.

Parameters
[in]pxTraceEventBufferPointer to initialized trace event buffer.
[in]uiChunkSizeMaximum transfer chunk in bytes.
[in]uiCoreIdCore ID to transfer data for.
[out]piBytesWrittenBytes written.
Return values
TRC_FAILFailure
TRC_SUCCESSSuccess