43 #define TRACE_MINOR_VERSION 4 44 #define TRACE_STORE_MODE_STOP_WHEN_FULL 1 45 #define TRACE_STORE_MODE_RING_BUFFER 2 46 #define TRACE_DATA_ALLOCATION_STATIC 1 47 #define TRACE_DATA_ALLOCATION_DYNAMIC 2 48 #define TRACE_DATA_ALLOCATION_CUSTOM 3 52 #if (USE_TRACEALYZER_RECORDER == 1) 57 #ifndef USE_SEPARATE_USER_EVENT_BUFFER 58 #define USE_SEPARATE_USER_EVENT_BUFFER 0 61 #ifndef TRACE_SR_ALLOC_CRITICAL_SECTION 62 #define TRACE_SR_ALLOC_CRITICAL_SECTION() 66 #define NEventCodes 0x100 69 extern volatile int recorder_busy;
72 #define trcCRITICAL_SECTION_BEGIN() {TRACE_ENTER_CRITICAL_SECTION(); recorder_busy++;} 73 #define trcCRITICAL_SECTION_END() {recorder_busy--; TRACE_EXIT_CRITICAL_SECTION();} 76 extern uint8_t excludedObjects[(TRACE_KERNEL_OBJECT_COUNT + TRACE_NCLASSES) / 8 + 1];
79 extern uint8_t excludedEventCodes[NEventCodes / 8 + 1];
107 uint16_t indexOfNextAvailableHandle[ TRACE_NCLASSES ];
110 uint16_t lowestIndexOfClass[ TRACE_NCLASSES ];
113 uint16_t highestIndexOfClass[ TRACE_NCLASSES ];
116 uint16_t handleCountWaterMarksOfClass[ TRACE_NCLASSES ];
121 } objectHandleStackType;
123 extern objectHandleStackType objectHandleStacks;
144 uint32_t NumberOfObjectClasses;
146 uint32_t ObjectPropertyTableSizeInBytes;
150 #if (USE_16BIT_OBJECT_HANDLES == 1) 157 uint8_t NameLengthPerClass[ 4*((TRACE_NCLASSES+3)/4) ];
159 uint8_t TotalPropertyBytesPerClass[ 4*((TRACE_NCLASSES+3)/4) ];
162 uint16_t StartIndexOfClass[ 2*((TRACE_NCLASSES+1)/2) ];
165 uint8_t objbytes[ 4*((TRACE_OBJECT_TABLE_SIZE+3)/4) ];
166 } ObjectPropertyTableType;
172 uint32_t symTableSize;
175 uint32_t nextFreeSymbolIndex;
183 uint16_t latestEntryOfChecksum[64];
218 } KernelCallWithParamAndHandle;
225 } KernelCallWithParam16;
231 uint16_t symbolIndex;
248 } TaskInstanceStatusEvent;
293 #if (USE_SEPARATE_USER_EVENT_BUFFER == 1) 304 uint32_t wraparoundCounter;
305 uint32_t numberOfSlots;
306 uint32_t nextSlotToWrite;
307 uint8_t numberOfChannels;
324 uint8_t startmarker0;
325 uint8_t startmarker1;
326 uint8_t startmarker2;
327 uint8_t startmarker3;
328 uint8_t startmarker4;
329 uint8_t startmarker5;
330 uint8_t startmarker6;
331 uint8_t startmarker7;
332 uint8_t startmarker8;
333 uint8_t startmarker9;
334 uint8_t startmarker10;
335 uint8_t startmarker11;
341 uint8_t minor_version;
346 uint8_t irq_priority_order;
358 uint32_t nextFreeIndex;
361 uint32_t bufferIsFull;
368 uint32_t absTimeLastEvent;
371 uint32_t absTimeLastEventSecond;
375 uint32_t recorderActive;
381 uint32_t heapMemUsage;
384 int32_t debugMarker0;
387 uint32_t isUsing16bitHandles;
392 ObjectPropertyTableType ObjectPropertyTable;
395 int32_t debugMarker1;
400 symbolTableType SymbolTable;
404 #if (INCLUDE_FLOAT_SUPPORT == 1) 405 float exampleFloatEncoding;
407 uint32_t exampleFloatEncoding;
413 uint32_t internalErrorOccured;
416 int32_t debugMarker2;
422 int32_t debugMarker3;
427 #if (USE_SEPARATE_USER_EVENT_BUFFER == 1) 428 UserEventBuffer userEventBuffer;
432 uint32_t endOfSecondaryBlocks;
448 extern RecorderDataType* RecorderDataPtr;
452 uint16_t prvTraceGetDTS(uint16_t param_maxDTS);
454 void prvTraceGetChecksum(
const char *pname, uint8_t* pcrc, uint8_t* plength);
456 traceLabel prvTraceCreateSymbolTableEntry(
const char* name,
461 traceLabel prvTraceLookupSymbolTableEntry(
const char* name,
468 void prvTraceUpdateCounters(
void);
470 void prvCheckDataToBeOverwrittenForMultiEntryEvents(uint8_t nEntries);
481 void* xTraceNextFreeEventBufferSlot(
void);
483 #if (USE_16BIT_OBJECT_HANDLES == 1) 486 #define prvTraceGet8BitHandle(x) ((unsigned char)x) 491 uint8_t objectclass);
499 void vTraceError(
const char* msg);
508 void prvTraceInitTraceData(
void);
512 #define TRACE_PROPERTY_NAME_GET(objectclass, objecthandle) \ 513 (const char*)(& RecorderDataPtr->ObjectPropertyTable.objbytes \ 514 [uiIndexOfObject(objecthandle, objectclass)]) 516 #define TRACE_PROPERTY_OBJECT_STATE(objectclass, handle) \ 517 RecorderDataPtr->ObjectPropertyTable.objbytes[uiIndexOfObject(handle, objectclass) \ 518 + RecorderDataPtr->ObjectPropertyTable.NameLengthPerClass[objectclass]] 520 #define TRACE_PROPERTY_ACTOR_PRIORITY(objectclass, handle) \ 521 RecorderDataPtr->ObjectPropertyTable.objbytes[uiIndexOfObject(handle, objectclass) \ 522 + RecorderDataPtr->ObjectPropertyTable.NameLengthPerClass[objectclass] + 1] 524 #define TRACE_SET_FLAG_ISEXCLUDED(flags, bitIndex) flags[(bitIndex) >> 3] |= (1 << ((bitIndex) & 7)) 525 #define TRACE_CLEAR_FLAG_ISEXCLUDED(flags, bitIndex) flags[(bitIndex) >> 3] &= ~(1 << ((bitIndex) & 7)) 526 #define TRACE_GET_FLAG_ISEXCLUDED(flags, bitIndex) (flags[(bitIndex) >> 3] & (1 << ((bitIndex) & 7))) 528 #define TRACE_SET_EVENT_CODE_FLAG_ISEXCLUDED(eventCode) TRACE_SET_FLAG_ISEXCLUDED(excludedEventCodes, eventCode) 529 #define TRACE_CLEAR_EVENT_CODE_FLAG_ISEXCLUDED(eventCode) TRACE_CLEAR_FLAG_ISEXCLUDED(excludedEventCodes, eventCode) 530 #define TRACE_GET_EVENT_CODE_FLAG_ISEXCLUDED(eventCode) TRACE_GET_FLAG_ISEXCLUDED(excludedEventCodes, eventCode) 533 #if defined USE_TRACE_ASSERT && USE_TRACE_ASSERT != 0 534 #define TRACE_ASSERT(eval, msg, defRetVal) \ 537 vTraceError("TRACE_ASSERT: " msg); \ 541 #define TRACE_ASSERT(eval, msg, defRetVal) #define SYMBOL_TABLE_SIZE
Definition: trcConfig.h:296
#define USER_EVENT_BUFFER_SIZE
Definition: trcConfig.h:463
unsigned int unsigned int len
Definition: startup.cpp:197
uint8_t objectHandleType
Definition: trcTypes.h:53
uint8_t traceObjectClass
Definition: trcTypes.h:56
uint16_t traceLabel
Definition: trcTypes.h:46
#define EVENT_BUFFER_SIZE
Definition: trcConfig.h:150
To use the FreeRTOS so play with it a little *uses roughly of and uses roughly of RAM *The larger the size
Definition: readme.txt:4
#define CHANNEL_FORMAT_PAIRS
Definition: trcConfig.h:474