FreeRTOS: V 9.0.0
Percepio Tracealyzer: V 4.6.5
MCU: stm32f4
IDE: keil
Testing Mode: Streaming Jlink
when configuring in the file:
trcKernelPortConfig.h
#define TRC_CFG_RECORDER_MODE TRC_RECORDER_MODE_STREAMING
in file event_groups.c ,
function
void vEventGroupDelete( EventGroupHandle_t xEventGroup )
Where EventGroupHandle_t defines as:
typedef void * EventGroupHandle_t;
In this function, there is one line, 634:
traceEVENT_GROUP_DELETE(xEventGroup);
got error
..\FreeRTOS\event_groups.c(634): error: #132: expression must have pointer-to-struct-or-union type
Screenshot below:
while when I configure the mode into TRC_RECORDER_MODE_SNAPSHOT, it works.
I think the functions.
A
#ifndef traceEVENT_GROUP_CREATE
#define traceEVENT_GROUP_CREATE( xEventGroup )
#endif
B
#ifndef traceEVENT_GROUP_DELETE
#define traceEVENT_GROUP_DELETE( xEventGroup )
#endif
these A and B are the same parameters xEventGroup
so again, in file event_group.c
I found the function
EventGroupHandle_t xEventGroupCreate( void )
there is line
traceEVENT_GROUP_CREATE( pxEventBits );
so I replace xEventGroup with pxEventBits in the error line from above(just test, can ignore the test below and the errors)
traceEVENT_GROUP_DELETE(pxEventBits );
Then got some other bunches of errors:
..\OBJ\TIMER.axf: Error: L6218E: Undefined symbol pxTraceEventDataTable (referred from the queue. o).
..\OBJ\TIMER.axf: Error: L6218E: Undefined symbol pxTraceTimestamp (referred from the queue. o).
..\OBJ\TIMER.axf: Error: L6218E: Undefined symbol xTraceEventBeginRawOffline (referred from the queue. o).
..\OBJ\TIMER.axf: Error: L6218E: Undefined symbol xTraceEventEndOffline (referred from the queue. o).
..\OBJ\TIMER.axf: Error: L6218E: Undefined symbol xTraceObjectRegisterWithoutHandle (referred from the queue. o).
..\OBJ\TIMER.axf: Error: L6218E: Undefined symbol xTraceObjectSetNameWithoutHandle (referred from the queue. o).
..\OBJ\TIMER.axf: Error: L6218E: Undefined symbol xTraceObjectUnregisterWithoutHandle (referred from the queue. o).
..\OBJ\TIMER.axf: Error: L6218E: Undefined symbol xTraceStackMonitorAdd (referred from tasks. o).
..\OBJ\TIMER.axf: Error: L6218E: Undefined symbol xTraceStackMonitorRemove (referred from tasks. o).
..\OBJ\TIMER.axf: Error: L6218E: Undefined symbol xTraceTaskReady (referred from tasks. o).
..\OBJ\TIMER.axf: Error: L6218E: Undefined symbol xTraceTaskSetPriorityWithoutHandle (referred from tasks. o).
..\OBJ\TIMER.axf: Error: L6218E: Undefined symbol xTraceTaskSwitch (referred from tasks. o).
..\OBJ\TIMER.axf: Error: L6218E: Undefined symbol xTraceHeapAlloc (referred from heap_4.o).
..\OBJ\TIMER.axf: Error: L6218E: Undefined symbol xTraceHeapFree (referred from heap_4.o).
..\OBJ\TIMER.axf: Error: L6218E: Undefined symbol xTraceError (referred from trckernelport.o).
..\OBJ\TIMER.axf: Error: L6218E: Undefined symbol xTraceHeapCreate (referred from trckernelport. o).
..\OBJ\TIMER.axf: Error: L6218E: Undefined symbol pxTraceTaskInfo (referred from trcstreamingrecorder. o).
..\OBJ\TIMER.axf: Error: L6218E: Undefined symbol xTraceDiagnosticsCheckStatus (referred from trcstreamingrecorder. o).
..\OBJ\TIMER.axf: Error: L6218E: Undefined symbol xTraceDiagnosticsInitialize (referred from trcstreamingrecorder. o).
..\OBJ\TIMER.axf: Error: L6218E: Undefined symbol xTraceEntryGetAtIndex (referred from trcstreamingrecorder. o).
..\OBJ\TIMER.axf: Error: L6218E: Undefined symbol xTraceEntryGetCount (referred from trcstreamingrecorder. o).
..\OBJ\TIMER.axf: Error: L6218E: Undefined symbol xTraceEntryTableInitialize (referred from trcstreamingrecorder. o).
..\OBJ\TIMER.axf: Error: L6218E: Undefined symbol xTraceErrorInitialize (referred from trcstreamingrecorder. o).
..\OBJ\TIMER.axf: Error: L6218E: Undefined symbol xTraceEventAddData (referred from trcstreamingrecorder. o).
..\OBJ\TIMER.axf: Error: L6218E: Undefined symbol xTraceEventBeginRawOfflineBlocking (referred from trcstreamingrecorder. o).
..\OBJ\TIMER.axf: Error: L6218E: Undefined symbol xTraceEventEndOfflineBlocking (referred from trcstreamingrecorder. o).
..\OBJ\TIMER.axf: Error: L6218E: Undefined symbol xTraceEventInitialize (referred from trcstreamingrecorder. o).
..\OBJ\TIMER.axf: Error: L6218E: Undefined symbol xTraceHardwarePortInitCortexM (referred from trcstreamingrecorder. o).
..\OBJ\TIMER.axf: Error: L6218E: Undefined symbol xTraceISRInitialize (referred from trcstreamingrecorder. o).
..\OBJ\TIMER.axf: Error: L6218E: Undefined symbol xTracePrintInitialize (referred from trcstreamingrecorder. o).
..\OBJ\TIMER.axf: Error: L6218E: Undefined symbol xTraceStackMonitorInitialize (referred from trcstreamingrecorder. o).
..\OBJ\TIMER.axf: Error: L6218E: Undefined symbol xTraceStackMonitorReport (referred from trcstreamingrecorder. o).
..\OBJ\TIMER.axf: Error: L6218E: Undefined symbol xTraceStaticBufferInitialize (referred from trcstreamingrecorder. o).
..\OBJ\TIMER.axf: Error: L6218E: Undefined symbol xTraceTaskInitialize (referred from trcstreamingrecorder. o).
..\OBJ\TIMER.axf: Error: L6218E: Undefined symbol xTraceTimestampInitialize (referred from trcstreamingrecorder. o).
..\OBJ\TIMER.axf: Error: L6218E: Undefined symbol trace warning (referred from trcstreamingrecorder. o).
So, what is the problem when setting the mode into a streaming mode? Did I get this error below; how to solve this?
Member reference base type "void" is not a struct or union.
in this function
traceEVENT_GROUP_DELETE(xEventGroup);