Percepio Trace Recorder v4.11.0
Loading...
Searching...
No Matches
trcStreamPort.h
1/*
2 * Trace Recorder for Tracealyzer v4.11.0
3 * Copyright 2025 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
20extern "C" {
21#endif
22
23#define TRC_STREAM_PORT_USB_BUFFER_SIZE ((((TRC_CFG_STREAM_PORT_USB_BUFFER_SIZE) + sizeof(TraceUnsignedBaseType_t) - 1) / sizeof(TraceUnsignedBaseType_t)) * sizeof(TraceUnsignedBaseType_t))
24
25typedef struct TraceStreamPortBuffer /* Aligned */
26{
27 TraceUnsignedBaseType_t idx;
28 uint8_t bufferUSB[TRC_STREAM_PORT_USB_BUFFER_SIZE];
29} TraceStreamPortBuffer_t;
30
31traceResult prvTraceCDCReceive(void* data, uint32_t uiSize, int32_t* piBytesReceived);
32
33traceResult prvTraceCDCTransmit(void* pvData, uint32_t uiSize, int32_t* piBytesSent);
34
45traceResult xTraceStreamPortInitialize(TraceStreamPortBuffer_t* pxBuffer);
46
58#define xTraceStreamPortWriteData(pvData, uiSize, uiChannel, piBytesWritten) prvTraceCDCTransmit(pvData, uiSize, piBytesWritten)
59
70#define xTraceStreamPortReadData prvTraceCDCReceive
71
72#define xTraceStreamPortOnEnable(uiStartOption) ((void)(uiStartOption), TRC_SUCCESS)
73
74#define xTraceStreamPortOnDisable() (TRC_SUCCESS)
75
76#define xTraceStreamPortOnTraceBegin() (TRC_SUCCESS)
77
78#define xTraceStreamPortOnTraceEnd() (TRC_SUCCESS)
79
80#ifdef __cplusplus
81}
82#endif
83
84#endif /* TRC_STREAM_PORT_H */
A structure representing the trace stream port buffer.
Definition trcStreamPort.h:71