Percepio Trace Recorder  v4.6.6
trcStreamPort.h
1 /*
2  * Trace Recorder for Tracealyzer v4.6.6
3  * Copyright 2021 Percepio AB
4  * www.percepio.com
5  *
6  * SPDX-License-Identifier: Apache-2.0
7  *
8  * The interface definitions for trace streaming ("stream ports").
9  * This "stream port" sets up the recorder to use USB CDC as streaming channel.
10  * The example is for STM32 using STM32Cube.
11  */
12 
13 #ifndef TRC_STREAM_PORT_H
14 #define TRC_STREAM_PORT_H
15 
16 #include <trcTypes.h>
17 #include <trcStreamPortConfig.h>
18 
19 #ifdef __cplusplus
20 extern "C" {
21 #endif
22 
23 #define TRC_USE_INTERNAL_BUFFER 1
24 
25 #define TRC_STREAM_PORT_USB_BUFFER_SIZE ((((TRC_CFG_STREAM_PORT_USB_BUFFER_SIZE) + sizeof(TraceUnsignedBaseType_t) - 1) / sizeof(TraceUnsignedBaseType_t)) * sizeof(TraceUnsignedBaseType_t))
26 #define TRC_STREAM_PORT_INTERNAL_BUFFER_SIZE ((((TRC_CFG_STREAM_PORT_INTERNAL_BUFFER_SIZE) + sizeof(TraceUnsignedBaseType_t) - 1) / sizeof(TraceUnsignedBaseType_t)) * sizeof(TraceUnsignedBaseType_t))
27 
28 typedef struct TraceStreamPortBuffer
29 {
30  uint8_t buffer[(TRC_STREAM_PORT_USB_BUFFER_SIZE) + (TRC_STREAM_PORT_INTERNAL_BUFFER_SIZE) + sizeof(TraceUnsignedBaseType_t)];
32 
33 traceResult prvTraceCDCReceive(void* data, uint32_t uiSize, int32_t* piBytesReceived);
34 
35 traceResult prvTraceCDCTransmit(void* pvData, uint32_t uiSize, int32_t* piBytesSent);
36 
47 traceResult xTraceStreamPortInitialize(TraceStreamPortBuffer_t* pxBuffer);
48 
58 #define xTraceStreamPortAllocate(uiSize, ppvData) ((void)uiSize, xTraceStaticBufferGet(ppvData))
59 
72 #define xTraceStreamPortCommit xTraceInternalEventBufferPush
73 
84 #define xTraceStreamPortWriteData prvTraceCDCTransmit
85 
96 #define xTraceStreamPortReadData prvTraceCDCReceive
97 
98 #define xTraceStreamPortOnEnable(uiStartOption) ((void)(uiStartOption), TRC_SUCCESS)
99 
100 #define xTraceStreamPortOnDisable() (TRC_SUCCESS)
101 
102 #define xTraceStreamPortOnTraceBegin() (TRC_SUCCESS)
103 
104 #define xTraceStreamPortOnTraceEnd() (TRC_SUCCESS)
105 
106 #ifdef __cplusplus
107 }
108 #endif
109 
110 #endif /* TRC_STREAM_PORT_H */
TraceStreamPortBuffer
A structure representing the trace stream port buffer.
Definition: trcStreamPort.h:80