/* This version of the function dynamically allocates the trace data */ void prvTraceInitTraceData() { init_hwtc_count = HWTC_COUNT; #if TRACE_DATA_ALLOCATION == TRACE_DATA_ALLOCATION_STATIC RecorderDataPtr = &RecorderData; #elif TRACE_DATA_ALLOCATION == TRACE_DATA_ALLOCATION_DYNAMIC RecorderDataPtr = (RecorderDataType*)TRACE_MALLOC(sizeof(RecorderDataType)); #elif TRACE_DATA_ALLOCATION == TRACE_DATA_ALLOCATION_CUSTOM /* DO NOTHING */ #endif TRACE_ASSERT(RecorderDataPtr != NULL, "prvTraceInitTraceData, RecorderDataPtr == NULL", ;);
/* This version of the function dynamically allocates the trace data */ void prvTraceInitTraceData() { init_hwtc_count = HWTC_COUNT; #if TRACE_DATA_ALLOCATION == TRACE_DATA_ALLOCATION_STATIC RecorderDataPtr = &RecorderData; #elif TRACE_DATA_ALLOCATION == TRACE_DATA_ALLOCATION_DYNAMIC RecorderDataPtr = (RecorderDataType*)TRACE_MALLOC(sizeof(RecorderDataType)); #elif TRACE_DATA_ALLOCATION == TRACE_DATA_ALLOCATION_CUSTOM /* DO NOTHING */ #endif TRACE_ASSERT(RecorderDataPtr != NULL, "prvTraceInitTraceData, RecorderDataPtr == NULL", ); if (! RecorderDataPtr) { vTraceError("No recorder data structure allocated!"); return; } (void)memset(RecorderDataPtr, 0, sizeof(RecorderDataType)); RecorderDataPtr->startmarker0 = 0x00; RecorderDataPtr->startmarker1 = 0x01; RecorderDataPtr->startmarker2 = 0x02; RecorderDataPtr->startmarker3 = 0x03; RecorderDataPtr->startmarker4 = 0x70; RecorderDataPtr->startmarker5 = 0x71; RecorderDataPtr->startmarker6 = 0x72; RecorderDataPtr->startmarker7 = 0x73; RecorderDataPtr->startmarker8 = 0xF0; RecorderDataPtr->startmarker9 = 0xF1; RecorderDataPtr->startmarker10 = 0xF2; RecorderDataPtr->startmarker11 = 0xF3; RecorderDataPtr->version = TRACE_KERNEL_VERSION; RecorderDataPtr->minor_version = TRACE_MINOR_VERSION; RecorderDataPtr->irq_priority_order = IRQ_PRIORITY_ORDER; RecorderDataPtr->filesize = sizeof(RecorderDataType); RecorderDataPtr->maxEvents = EVENT_BUFFER_SIZE; RecorderDataPtr->debugMarker0 = 0xF0F0F0F0; RecorderDataPtr->isUsing16bitHandles = USE_16BIT_OBJECT_HANDLES; /* This function is kernel specific */ vTraceInitObjectPropertyTable(); RecorderDataPtr->debugMarker1 = 0xF1F1F1F1; RecorderDataPtr->SymbolTable.symTableSize = SYMBOL_TABLE_SIZE; RecorderDataPtr->SymbolTable.nextFreeSymbolIndex = 1; #if (INCLUDE_FLOAT_SUPPORT == 1) RecorderDataPtr->exampleFloatEncoding = (float)1.0; /* otherwise already zero */ #endif RecorderDataPtr->debugMarker2 = 0xF2F2F2F2; (void)strncpy(RecorderDataPtr->systemInfo, TRACE_DESCRIPTION, TRACE_DESCRIPTION_MAX_LENGTH); RecorderDataPtr->debugMarker3 = 0xF3F3F3F3; RecorderDataPtr->endmarker0 = 0x0A; RecorderDataPtr->endmarker1 = 0x0B; RecorderDataPtr->endmarker2 = 0x0C; RecorderDataPtr->endmarker3 = 0x0D; RecorderDataPtr->endmarker4 = 0x71; RecorderDataPtr->endmarker5 = 0x72; RecorderDataPtr->endmarker6 = 0x73; RecorderDataPtr->endmarker7 = 0x74; RecorderDataPtr->endmarker8 = 0xF1; RecorderDataPtr->endmarker9 = 0xF2; RecorderDataPtr->endmarker10 = 0xF3; RecorderDataPtr->endmarker11 = 0xF4; #if USE_SEPARATE_USER_EVENT_BUFFER RecorderDataPtr->userEventBuffer.bufferID = 1; RecorderDataPtr->userEventBuffer.version = 0; RecorderDataPtr->userEventBuffer.numberOfSlots = USER_EVENT_BUFFER_SIZE; RecorderDataPtr->userEventBuffer.numberOfChannels = CHANNEL_FORMAT_PAIRS + 1; #endif /* Kernel specific initialization of the objectHandleStacks variable */ vTraceInitObjectHandleStack(); /* Fix the start markers of the trace data structure */ vInitStartMarkers(); #ifdef PORT_SPECIFIC_INIT PORT_SPECIFIC_INIT(); #endif }