11#ifndef TRC_KERNEL_PORT_H
12#define TRC_KERNEL_PORT_H
14#include <trcDefines.h>
21#define TRC_USE_TRACEALYZER_RECORDER configUSE_TRACE_FACILITY
24#define FREERTOS_VERSION_NOT_SET 0
25#define TRC_FREERTOS_VERSION_7_3_X 1
26#define TRC_FREERTOS_VERSION_7_4_X 2
27#define TRC_FREERTOS_VERSION_7_5_X 3
28#define TRC_FREERTOS_VERSION_7_6_X TRC_FREERTOS_VERSION_7_5_X
29#define TRC_FREERTOS_VERSION_8_X_X 4
30#define TRC_FREERTOS_VERSION_9_0_0 5
31#define TRC_FREERTOS_VERSION_9_0_1 6
32#define TRC_FREERTOS_VERSION_9_0_2 7
33#define TRC_FREERTOS_VERSION_10_0_0 8
34#define TRC_FREERTOS_VERSION_10_0_1 TRC_FREERTOS_VERSION_10_0_0
35#define TRC_FREERTOS_VERSION_10_1_0 9
36#define TRC_FREERTOS_VERSION_10_1_1 TRC_FREERTOS_VERSION_10_1_0
37#define TRC_FREERTOS_VERSION_10_2_0 TRC_FREERTOS_VERSION_10_1_0
38#define TRC_FREERTOS_VERSION_10_2_1 TRC_FREERTOS_VERSION_10_1_0
39#define TRC_FREERTOS_VERSION_10_3_0 10
40#define TRC_FREERTOS_VERSION_10_3_1 TRC_FREERTOS_VERSION_10_3_0
41#define TRC_FREERTOS_VERSION_10_4_0 11
42#define TRC_FREERTOS_VERSION_10_4_1 TRC_FREERTOS_VERSION_10_4_0
43#define TRC_FREERTOS_VERSION_10_4_2 TRC_FREERTOS_VERSION_10_4_0
44#define TRC_FREERTOS_VERSION_10_4_3 TRC_FREERTOS_VERSION_10_4_0
45#define TRC_FREERTOS_VERSION_10_5_0 TRC_FREERTOS_VERSION_10_4_0
46#define TRC_FREERTOS_VERSION_10_5_1 TRC_FREERTOS_VERSION_10_4_0
49#define TRC_FREERTOS_VERSION_7_3 TRC_FREERTOS_VERSION_7_3_X
50#define TRC_FREERTOS_VERSION_7_4 TRC_FREERTOS_VERSION_7_4_X
51#define TRC_FREERTOS_VERSION_7_5_OR_7_6 TRC_FREERTOS_VERSION_7_5_X
52#define TRC_FREERTOS_VERSION_8_X TRC_FREERTOS_VERSION_8_X_X
54#if (TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_10_0_0)
55#define prvGetStreamBufferType(x) ((( StreamBuffer_t * )(x) )->ucFlags & sbFLAGS_IS_MESSAGE_BUFFER)
57#define prvGetStreamBufferType(x) 0
62#if (TRC_CFG_FREERTOS_VERSION < TRC_FREERTOS_VERSION_8_X_X)
64 #define STRING_CAST(x) ( (signed char*) x )
65 #define TraceKernelPortTickType_t portTickType
66 #define TraceKernelPortTaskHandle_t xTaskHandle
69 #define STRING_CAST(x) x
70 #define TraceKernelPortTickType_t TickType_t
71 #define TraceKernelPortTaskHandle_t TaskHandle_t
74#if (defined(TRC_USE_TRACEALYZER_RECORDER)) && (TRC_USE_TRACEALYZER_RECORDER == 1)
76#define TRC_PLATFORM_CFG "FreeRTOS"
77#define TRC_PLATFORM_CFG_MAJOR 1
78#define TRC_PLATFORM_CFG_MINOR 2
79#define TRC_PLATFORM_CFG_PATCH 0
81#if defined(TRC_CFG_ENABLE_STACK_MONITOR) && (TRC_CFG_ENABLE_STACK_MONITOR == 1) && (TRC_CFG_SCHEDULING_ONLY == 0)
88#define TRC_CFG_ALLOW_TASK_DELETE INCLUDE_vTaskDelete
91#undef INCLUDE_uxTaskGetStackHighWaterMark
92#define INCLUDE_uxTaskGetStackHighWaterMark 1
97#undef INCLUDE_xTaskGetCurrentTaskHandle
98#define INCLUDE_xTaskGetCurrentTaskHandle 1
100#if (TRC_CFG_RECORDER_MODE == TRC_RECORDER_MODE_STREAMING)
102#define TRC_KERNEL_PORT_KERNEL_CAN_SWITCH_TO_SAME_TASK 0
106#define TRC_KERNEL_PORT_BUFFER_SIZE (sizeof(TraceHeapHandle_t) + sizeof(void*))
107#elif (TRC_CFG_RECORDER_MODE == TRC_RECORDER_MODE_SNAPSHOT)
108#define TRC_KERNEL_PORT_BUFFER_SIZE (sizeof(TraceUnsignedBaseType_t))
111#if (TRC_CFG_FREERTOS_VERSION == FREERTOS_VERSION_NOT_SET)
112#error "Please set TRC_CFG_FREERTOS_VERSION in trcKernelPortConfig.h to the FreeRTOS version used."
120 uint8_t buffer[TRC_KERNEL_PORT_BUFFER_SIZE];
139traceResult xTraceKernelPortEnable(
void);
149traceResult xTraceKernelPortDelay(uint32_t uiTicks);
157unsigned char xTraceKernelPortIsSchedulerSuspended(
void);
162#define TRC_KERNEL_PORT_ALLOC_CRITICAL_SECTION() TraceUnsignedBaseType_t TRACE_ALLOC_CRITICAL_SECTION_NAME;
167#define TRC_KERNEL_PORT_ENTER_CRITICAL_SECTION() TRACE_ALLOC_CRITICAL_SECTION_NAME = 0; portENTER_CRITICAL()
172#define TRC_KERNEL_PORT_EXIT_CRITICAL_SECTION() (void)TRACE_ALLOC_CRITICAL_SECTION_NAME; portEXIT_CRITICAL()
177#define TRC_KERNEL_PORT_SET_INTERRUPT_MASK() ((TraceBaseType_t)portSET_INTERRUPT_MASK_FROM_ISR())
179#if (TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_8_X_X)
184#define TRC_KERNEL_PORT_CLEAR_INTERRUPT_MASK(xMask) portCLEAR_INTERRUPT_MASK_FROM_ISR((UBaseType_t)(xMask))
191#define TRC_KERNEL_PORT_CLEAR_INTERRUPT_MASK(xMask) portCLEAR_INTERRUPT_MASK_FROM_ISR((unsigned portBASE_TYPE)xMask)
194#if (TRC_CFG_SCHEDULING_ONLY == 0)
202void vTraceSetQueueName(
void* pvQueue,
const char* szName);
210void vTraceSetSemaphoreName(
void* pvSemaphore,
const char* szName);
218void vTraceSetMutexName(
void* pvMutex,
const char* szName);
220#if (TRC_CFG_INCLUDE_EVENT_GROUP_EVENTS == 1)
228void vTraceSetEventGroupName(
void* pvEventGroup,
const char* szName);
235#define vTraceSetEventGroupName(__pvEventGroup, __szName) ((void)(__pvEventGroup), (void)(__szName))
239#if (TRC_CFG_INCLUDE_STREAM_BUFFER_EVENTS == 1)
247void vTraceSetStreamBufferName(
void* pvStreamBuffer,
const char* szName);
255void vTraceSetMessageBufferName(
void* pvMessageBuffer,
const char* szName);
262#define vTraceSetStreamBufferName(__pvStreamBuffer, __szName) ((void)(__pvStreamBuffer), (void)(__szName))
267#define vTraceSetMessageBufferName(__pvMessageBuffer, __szName) ((void)(__pvMessageBuffer), (void)(__szName))
271#if defined(TRC_CFG_ENABLE_STACK_MONITOR) && (TRC_CFG_ENABLE_STACK_MONITOR == 1)
282traceResult xTraceKernelPortGetUnusedStack(
void* pvTask, TraceUnsignedBaseType_t *puxUnusedStack);
291#define vTraceSetQueueName(__pvQueue, __szName) ((void)(__pvQueue), (void)(__szName))
296#define vTraceSetSemaphoreName(__pvSemaphore, __szName) ((void)(__pvSemaphore), (void)(__szName))
301#define vTraceSetMutexName(__pvMutex, __szName) ((void)(__pvMutex), (void)(__szName))
306#define vTraceSetEventGroupName(__pvEventGroup, __szName) ((void)(__pvEventGroup), (void)(__szName))
311#define vTraceSetStreamBufferName(__pvStreamBuffer, __szName) ((void)(__pvStreamBuffer), (void)(__szName))
316#define vTraceSetMessageBufferName(__pvMessageBuffer, __szName) ((void)(__pvMessageBuffer), (void)(__szName))
321#define xTraceKernelPortGetUnusedStack(pvTask, puxUnusedStack) ((void)(pvTask), (void)(puxUnusedStack))
325#if (((TRC_CFG_RECORDER_MODE == TRC_RECORDER_MODE_SNAPSHOT) && (TRC_CFG_INCLUDE_ISR_TRACING == 1)) || (TRC_CFG_RECORDER_MODE == TRC_RECORDER_MODE_STREAMING))
328#undef INCLUDE_xTaskGetSchedulerState
329#define INCLUDE_xTaskGetSchedulerState 1
336#define TRACE_KERNEL_VERSION 0x1AA1
341#define TRC_TICK_RATE_HZ configTICK_RATE_HZ
346#define TRACE_CPU_CLOCK_HZ configCPU_CLOCK_HZ
348#if (TRC_CFG_RECORDER_BUFFER_ALLOCATION == TRC_RECORDER_BUFFER_ALLOCATION_DYNAMIC)
352#define TRC_KERNEL_PORT_HEAP_INIT(size)
357#define TRC_KERNEL_PORT_HEAP_MALLOC(size) pvPortMalloc(size)
360#if (defined(configUSE_TIMERS) && (configUSE_TIMERS == 1))
362#undef INCLUDE_xTimerGetTimerDaemonTaskHandle
363#define INCLUDE_xTimerGetTimerDaemonTaskHandle 1
367#if (TRC_CFG_HARDWARE_PORT == TRC_HARDWARE_PORT_XMOS_XCOREAI)
369#undef TRC_CFG_CORE_COUNT
370#define TRC_CFG_CORE_COUNT configNUM_CORES
372#undef TRC_CFG_GET_CURRENT_CORE
373#define TRC_CFG_GET_CURRENT_CORE() rtos_core_id_get()
377#ifdef _CMSIS_RP2040_H_
378#undef TRC_CFG_CORE_COUNT
379#define TRC_CFG_CORE_COUNT configNUM_CORES
381#undef TRC_CFG_GET_CURRENT_CORE
382#define TRC_CFG_GET_CURRENT_CORE() get_core_num()
385#if (TRC_CFG_FREERTOS_VERSION == TRC_FREERTOS_VERSION_9_0_1)
410#define isQueueReceiveHookActuallyPeek (__LINE__ > 1674)
412#elif (TRC_CFG_FREERTOS_VERSION <= TRC_FREERTOS_VERSION_9_0_0)
417#define isQueueReceiveHookActuallyPeek xJustPeeking
419#elif (TRC_CFG_FREERTOS_VERSION > TRC_FREERTOS_VERSION_9_0_1)
424#define isQueueReceiveHookActuallyPeek (__LINE__ < 0)
429#define TZ__CAT2(a,b) a ## b
430#define TZ__CAT(a,b) TZ__CAT2(a, b)
437#define xQueueGiveFromISR(a,b) TZ__CAT(xQueueGiveFromISR__, uxQueueType) (a,b)
440#define xQueueGiveFromISR__pcHead(__a, __b) MyWrapper_xQueueGiveFromISR(__a, __b, const BaseType_t xCopyPosition); \
441BaseType_t xQueueGiveFromISR(__a, __b) { return MyWrapper_xQueueGiveFromISR(xQueue, pxHigherPriorityTaskWoken, queueSEND_TO_BACK); } \
442BaseType_t MyWrapper_xQueueGiveFromISR(__a, __b, const BaseType_t xCopyPosition)
445#define xQueueGiveFromISR__uxQueueType(__a, __b) xQueueGiveFromISR(__a,__b)
447#if (TRC_CFG_RECORDER_MODE == TRC_RECORDER_MODE_SNAPSHOT)
452#define TRACE_GET_CURRENT_TASK() prvTraceGetCurrentTaskHandle()
454extern uint16_t CurrentFilterMask;
455extern uint16_t CurrentFilterGroup;
464uint8_t prvTraceGetQueueType(
void* pvQueue);
473uint16_t prvTraceGetTaskNumberLow16(
void* pvTask);
482uint16_t prvTraceGetTaskNumberHigh16(
void* pvTask);
490void prvTraceSetTaskNumberLow16(
void* pvTask, uint16_t uiValue);
498void prvTraceSetTaskNumberHigh16(
void* pvTask, uint16_t uiValue);
507uint16_t prvTraceGetQueueNumberLow16(
void* pvQueue);
516uint16_t prvTraceGetQueueNumberHigh16(
void* pvQueue);
525void prvTraceSetQueueNumberLow16(
void* pvQueue, uint16_t uiValue);
534void prvTraceSetQueueNumberHigh16(
void* pvQueue, uint16_t uiValue);
536#if (TRC_CFG_INCLUDE_TIMER_EVENTS == 1 && TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_10_0_0)
545uint16_t prvTraceGetTimerNumberLow16(
void* pvTimer);
554uint16_t prvTraceGetTimerNumberHigh16(
void* pvTimer);
562void prvTraceSetTimerNumberLow16(
void* pvTimer, uint16_t uiValue);
570void prvTraceSetTimerNumberHigh16(
void* pvTimer, uint16_t uiValue);
574#if (TRC_CFG_INCLUDE_EVENT_GROUP_EVENTS == 1 && TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_10_0_0)
583uint16_t prvTraceGetEventGroupNumberLow16(
void* pvEventGroup);
592uint16_t prvTraceGetEventGroupNumberHigh16(
void* pvEventGroup);
600void prvTraceSetEventGroupNumberLow16(
void* pvEventGroup, uint16_t uiValue);
608void prvTraceSetEventGroupNumberHigh16(
void* handle, uint16_t value);
612#if (TRC_CFG_INCLUDE_STREAM_BUFFER_EVENTS == 1 && TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_10_0_0)
621uint16_t prvTraceGetStreamBufferNumberLow16(
void* pvStreamBuffer);
630uint16_t prvTraceGetStreamBufferNumberHigh16(
void* pvStreamBuffer);
638void prvTraceSetStreamBufferNumberLow16(
void* pvStreamBuffer, uint16_t uiValue);
646void prvTraceSetStreamBufferNumberHigh16(
void* pvStreamBuffer, uint16_t uiValue);
657#define TRACE_GET_TASK_FILTER(pxTask) prvTraceGetTaskNumberHigh16((void*)pxTask)
665#define TRACE_SET_TASK_FILTER(pxTask, group) prvTraceSetTaskNumberHigh16((void*)pxTask, group)
674#define TRACE_GET_QUEUE_FILTER(pxQueue) prvTraceGetQueueNumberHigh16((void*)pxQueue)
682#define TRACE_SET_QUEUE_FILTER(pxQueue, group) prvTraceSetQueueNumberHigh16((void*)pxQueue, group)
684#if (TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_10_0_0)
693#define TRACE_GET_EVENTGROUP_FILTER(pxEventGroup) prvTraceGetEventGroupNumberHigh16((void*)pxEventGroup)
701#define TRACE_SET_EVENTGROUP_FILTER(pxEventGroup, group) prvTraceSetEventGroupNumberHigh16((void*)pxEventGroup, group)
708#define TRACE_GET_EVENTGROUP_FILTER(pxEventGroup) ((void)(pxEventGroup), 1)
713#define TRACE_SET_EVENTGROUP_FILTER(pxEventGroup, group) ((void)(pxEventGroup), (void)(group))
717#if (TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_10_0_0)
726#define TRACE_GET_TIMER_FILTER(pxTimer) prvTraceGetTimerNumberHigh16((void*)pxTimer)
734#define TRACE_SET_TIMER_FILTER(pxTimer, group) prvTraceSetTimerNumberHigh16((void*)pxTimer, group)
741#define TRACE_GET_TIMER_FILTER(pxTimer) ((void)(pxTimer), 1)
746#define TRACE_SET_TIMER_FILTER(pxTimer, group) ((void)(pxTimer), (void)(group))
757#define TRACE_GET_STREAMBUFFER_FILTER(pxStreamBuffer) prvTraceGetStreamBufferNumberHigh16((void*)pxStreamBuffer)
765#define TRACE_SET_STREAMBUFFER_FILTER(pxStreamBuffer, group) prvTraceSetStreamBufferNumberHigh16((void*)pxStreamBuffer, group)
767#if (TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_8_X_X)
772#define TRACE_GET_OBJECT_FILTER(CLASS, pxObject) TRACE_GET_##CLASS##_FILTER(pxObject)
777#define TRACE_SET_OBJECT_FILTER(CLASS, pxObject, group) TRACE_SET_##CLASS##_FILTER(pxObject, group)
784#define TRACE_GET_OBJECT_FILTER(CLASS, pxObject) 0xFFFF
789#define TRACE_SET_OBJECT_FILTER(CLASS, pxObject, group)
794#define TRACE_NCLASSES 9
795#define TRACE_CLASS_QUEUE ((traceObjectClass)0)
796#define TRACE_CLASS_SEMAPHORE ((traceObjectClass)1)
797#define TRACE_CLASS_MUTEX ((traceObjectClass)2)
798#define TRACE_CLASS_TASK ((traceObjectClass)3)
799#define TRACE_CLASS_ISR ((traceObjectClass)4)
800#define TRACE_CLASS_TIMER ((traceObjectClass)5)
801#define TRACE_CLASS_EVENTGROUP ((traceObjectClass)6)
802#define TRACE_CLASS_STREAMBUFFER ((traceObjectClass)7)
803#define TRACE_CLASS_MESSAGEBUFFER ((traceObjectClass)8)
806#define TRACE_KERNEL_OBJECT_COUNT ((TRC_CFG_NQUEUE) + (TRC_CFG_NSEMAPHORE) + (TRC_CFG_NMUTEX) + (TRC_CFG_NTASK) + (TRC_CFG_NISR) + (TRC_CFG_NTIMER) + (TRC_CFG_NEVENTGROUP) + (TRC_CFG_NSTREAMBUFFER) + (TRC_CFG_NMESSAGEBUFFER))
809#define PropertyTableSizeQueue ((TRC_CFG_NAME_LEN_QUEUE) + 1)
812#define PropertyTableSizeSemaphore ((TRC_CFG_NAME_LEN_SEMAPHORE) + 1)
815#define PropertyTableSizeMutex ((TRC_CFG_NAME_LEN_MUTEX) + 1)
821#define PropertyTableSizeTask ((TRC_CFG_NAME_LEN_TASK) + 4)
825#define PropertyTableSizeISR ((TRC_CFG_NAME_LEN_ISR) + 2)
828#define PropertyTableSizeTimer ((TRC_CFG_NAME_LEN_TIMER) + 1)
831#define PropertyTableSizeEventGroup ((TRC_CFG_NAME_LEN_EVENTGROUP) + 4)
834#define PropertyTableSizeStreamBuffer ((TRC_CFG_NAME_LEN_STREAMBUFFER) + 4)
837#define PropertyTableSizeMessageBuffer ((TRC_CFG_NAME_LEN_MESSAGEBUFFER) + 4)
841#define StartIndexQueue (0)
842#define StartIndexSemaphore (StartIndexQueue + (TRC_CFG_NQUEUE) * PropertyTableSizeQueue)
843#define StartIndexMutex (StartIndexSemaphore + (TRC_CFG_NSEMAPHORE) * PropertyTableSizeSemaphore)
844#define StartIndexTask (StartIndexMutex + (TRC_CFG_NMUTEX) * PropertyTableSizeMutex)
845#define StartIndexISR (StartIndexTask + (TRC_CFG_NTASK) * PropertyTableSizeTask)
846#define StartIndexTimer (StartIndexISR + (TRC_CFG_NISR) * PropertyTableSizeISR)
847#define StartIndexEventGroup (StartIndexTimer + (TRC_CFG_NTIMER) * PropertyTableSizeTimer)
848#define StartIndexStreamBuffer (StartIndexEventGroup + (TRC_CFG_NEVENTGROUP) * PropertyTableSizeEventGroup)
849#define StartIndexMessageBuffer (StartIndexStreamBuffer + (TRC_CFG_NSTREAMBUFFER) * PropertyTableSizeStreamBuffer)
852#define TRACE_OBJECT_TABLE_SIZE (StartIndexMessageBuffer + (TRC_CFG_NMESSAGEBUFFER) * PropertyTableSizeMessageBuffer)
855extern int uiInEventGroupSetBitsFromISR;
860traceResult xTraceKernelPortInitObjectPropertyTable(
void);
865traceResult xTraceKernelPortInitObjectHandleStack(
void);
870const char* pszTraceGetErrorNotEnoughHandles(traceObjectClass objectclass);
875void* prvTraceGetCurrentTaskHandle(
void);
877extern traceObjectClass TraceQueueClassTable[5];
882#define NULL_EVENT (0x00UL)
889#define EVENTGROUP_DIV (NULL_EVENT + 1UL)
890#define DIV_XPS (EVENTGROUP_DIV + 0UL)
891#define DIV_TASK_READY (EVENTGROUP_DIV + 1UL)
892#define DIV_NEW_TIME (EVENTGROUP_DIV + 2UL)
900#define EVENTGROUP_TS (EVENTGROUP_DIV + 3UL)
901#define TS_ISR_BEGIN (EVENTGROUP_TS + 0UL)
902#define TS_ISR_RESUME (EVENTGROUP_TS + 1UL)
903#define TS_TASK_BEGIN (EVENTGROUP_TS + 2UL)
904#define TS_TASK_RESUME (EVENTGROUP_TS + 3UL)
915#define EVENTGROUP_OBJCLOSE_NAME_TRCSUCCESS (EVENTGROUP_TS + 4UL)
932#define EVENTGROUP_OBJCLOSE_PROP_TRCSUCCESS (EVENTGROUP_OBJCLOSE_NAME_TRCSUCCESS + 8UL)
941#define EVENTGROUP_CREATE_OBJ_TRCSUCCESS (EVENTGROUP_OBJCLOSE_PROP_TRCSUCCESS + 8UL)
951#define EVENTGROUP_SEND_TRCSUCCESS (EVENTGROUP_CREATE_OBJ_TRCSUCCESS + 8UL)
961#define EVENTGROUP_RECEIVE_TRCSUCCESS (EVENTGROUP_SEND_TRCSUCCESS + 8UL)
964#define EVENTGROUP_SEND_FROM_ISR_TRCSUCCESS \
965 (EVENTGROUP_RECEIVE_TRCSUCCESS + 8UL)
968#define EVENTGROUP_RECEIVE_FROM_ISR_TRCSUCCESS \
969 (EVENTGROUP_SEND_FROM_ISR_TRCSUCCESS + 8UL)
972#define EVENTGROUP_KSE_TRCFAILED \
973 (EVENTGROUP_RECEIVE_FROM_ISR_TRCSUCCESS + 8UL)
976#define EVENTGROUP_CREATE_OBJ_TRCFAILED (EVENTGROUP_KSE_TRCFAILED)
979#define EVENTGROUP_SEND_TRCFAILED (EVENTGROUP_CREATE_OBJ_TRCFAILED + 8UL)
982#define EVENTGROUP_RECEIVE_TRCFAILED (EVENTGROUP_SEND_TRCFAILED + 8UL)
985#define EVENTGROUP_SEND_FROM_ISR_TRCFAILED (EVENTGROUP_RECEIVE_TRCFAILED + 8UL)
988#define EVENTGROUP_RECEIVE_FROM_ISR_TRCFAILED \
989 (EVENTGROUP_SEND_FROM_ISR_TRCFAILED + 8UL)
992#define EVENTGROUP_RECEIVE_TRCBLOCK \
993 (EVENTGROUP_RECEIVE_FROM_ISR_TRCFAILED + 8UL)
996#define EVENTGROUP_SEND_TRCBLOCK (EVENTGROUP_RECEIVE_TRCBLOCK + 8UL)
999#define EVENTGROUP_PEEK_TRCSUCCESS (EVENTGROUP_SEND_TRCBLOCK + 8UL)
1002#define EVENTGROUP_DELETE_OBJ_TRCSUCCESS (EVENTGROUP_PEEK_TRCSUCCESS + 8UL)
1005#define EVENTGROUP_OTHERS (EVENTGROUP_DELETE_OBJ_TRCSUCCESS + 8UL)
1006#define TASK_DELAY_UNTIL (EVENTGROUP_OTHERS + 0UL)
1007#define TASK_DELAY (EVENTGROUP_OTHERS + 1UL)
1008#define TASK_SUSPEND (EVENTGROUP_OTHERS + 2UL)
1009#define TASK_RESUME (EVENTGROUP_OTHERS + 3UL)
1010#define TASK_RESUME_FROM_ISR (EVENTGROUP_OTHERS + 4UL)
1011#define TASK_PRIORITY_SET (EVENTGROUP_OTHERS + 5UL)
1012#define TASK_PRIORITY_INHERIT (EVENTGROUP_OTHERS + 6UL)
1013#define TASK_PRIORITY_DISINHERIT (EVENTGROUP_OTHERS + 7UL)
1015#define EVENTGROUP_MISC_PLACEHOLDER (EVENTGROUP_OTHERS + 8UL)
1016#define PEND_FUNC_CALL (EVENTGROUP_MISC_PLACEHOLDER+0UL)
1017#define PEND_FUNC_CALL_FROM_ISR (EVENTGROUP_MISC_PLACEHOLDER+1UL)
1018#define PEND_FUNC_CALL_TRCFAILED (EVENTGROUP_MISC_PLACEHOLDER+2UL)
1019#define PEND_FUNC_CALL_FROM_ISR_TRCFAILED (EVENTGROUP_MISC_PLACEHOLDER+3UL)
1020#define MEM_MALLOC_SIZE (EVENTGROUP_MISC_PLACEHOLDER+4UL)
1021#define MEM_MALLOC_ADDR (EVENTGROUP_MISC_PLACEHOLDER+5UL)
1022#define MEM_FREE_SIZE (EVENTGROUP_MISC_PLACEHOLDER+6UL)
1023#define MEM_FREE_ADDR (EVENTGROUP_MISC_PLACEHOLDER+7UL)
1026#define EVENTGROUP_USEREVENT (EVENTGROUP_MISC_PLACEHOLDER + 8UL)
1027#define USER_EVENT (EVENTGROUP_USEREVENT + 0UL)
1030#define USER_EVENT_LAST (EVENTGROUP_USEREVENT + 15UL)
1053#define EVENTGROUP_SYS (EVENTGROUP_USEREVENT + 16UL)
1054#define XTS8 (EVENTGROUP_SYS + 0UL)
1055#define XTS16 (EVENTGROUP_SYS + 1UL)
1056#define EVENT_BEING_WRITTEN (EVENTGROUP_SYS + 2UL)
1057#define RESERVED_DUMMY_CODE (EVENTGROUP_SYS + 3UL)
1058#define LOW_POWER_BEGIN (EVENTGROUP_SYS + 4UL)
1059#define LOW_POWER_END (EVENTGROUP_SYS + 5UL)
1060#define XID (EVENTGROUP_SYS + 6UL)
1061#define XTS16L (EVENTGROUP_SYS + 7UL)
1063#define EVENTGROUP_TIMER (EVENTGROUP_SYS + 8UL)
1064#define TIMER_CREATE (EVENTGROUP_TIMER + 0UL)
1065#define TIMER_START (EVENTGROUP_TIMER + 1UL)
1066#define TIMER_RST (EVENTGROUP_TIMER + 2UL)
1067#define TIMER_STOP (EVENTGROUP_TIMER + 3UL)
1068#define TIMER_CHANGE_PERIOD (EVENTGROUP_TIMER + 4UL)
1069#define TIMER_DELETE_OBJ (EVENTGROUP_TIMER + 5UL)
1070#define TIMER_START_FROM_ISR (EVENTGROUP_TIMER + 6UL)
1071#define TIMER_RESET_FROM_ISR (EVENTGROUP_TIMER + 7UL)
1072#define TIMER_STOP_FROM_ISR (EVENTGROUP_TIMER + 8UL)
1074#define TIMER_CREATE_TRCFAILED (EVENTGROUP_TIMER + 9UL)
1075#define TIMER_START_TRCFAILED (EVENTGROUP_TIMER + 10UL)
1076#define TIMER_RESET_TRCFAILED (EVENTGROUP_TIMER + 11UL)
1077#define TIMER_STOP_TRCFAILED (EVENTGROUP_TIMER + 12UL)
1078#define TIMER_CHANGE_PERIOD_TRCFAILED (EVENTGROUP_TIMER + 13UL)
1079#define TIMER_DELETE_TRCFAILED (EVENTGROUP_TIMER + 14UL)
1080#define TIMER_START_FROM_ISR_TRCFAILED (EVENTGROUP_TIMER + 15UL)
1081#define TIMER_RESET_FROM_ISR_TRCFAILED (EVENTGROUP_TIMER + 16UL)
1082#define TIMER_STOP_FROM_ISR_TRCFAILED (EVENTGROUP_TIMER + 17UL)
1084#define EVENTGROUP_EG (EVENTGROUP_TIMER + 18UL)
1085#define EVENT_GROUP_CREATE (EVENTGROUP_EG + 0UL)
1086#define EVENT_GROUP_CREATE_TRCFAILED (EVENTGROUP_EG + 1UL)
1087#define EVENT_GROUP_SYNC_TRCBLOCK (EVENTGROUP_EG + 2UL)
1088#define EVENT_GROUP_SYNC_END (EVENTGROUP_EG + 3UL)
1089#define EVENT_GROUP_WAIT_BITS_TRCBLOCK (EVENTGROUP_EG + 4UL)
1090#define EVENT_GROUP_WAIT_BITS_END (EVENTGROUP_EG + 5UL)
1091#define EVENT_GROUP_CLEAR_BITS (EVENTGROUP_EG + 6UL)
1092#define EVENT_GROUP_CLEAR_BITS_FROM_ISR (EVENTGROUP_EG + 7UL)
1093#define EVENT_GROUP_SET_BITS (EVENTGROUP_EG + 8UL)
1094#define EVENT_GROUP_DELETE_OBJ (EVENTGROUP_EG + 9UL)
1095#define EVENT_GROUP_SYNC_END_TRCFAILED (EVENTGROUP_EG + 10UL)
1096#define EVENT_GROUP_WAIT_BITS_END_TRCFAILED (EVENTGROUP_EG + 11UL)
1097#define EVENT_GROUP_SET_BITS_FROM_ISR (EVENTGROUP_EG + 12UL)
1098#define EVENT_GROUP_SET_BITS_FROM_ISR_TRCFAILED (EVENTGROUP_EG + 13UL)
1100#define TASK_INSTANCE_FINISHED_NEXT_KSE (EVENTGROUP_EG + 14UL)
1101#define TASK_INSTANCE_FINISHED_DIRECT (EVENTGROUP_EG + 15UL)
1103#define TRACE_TASK_NOTIFY_GROUP (EVENTGROUP_EG + 16UL)
1104#define TRACE_TASK_NOTIFY (TRACE_TASK_NOTIFY_GROUP + 0UL)
1105#define TRACE_TASK_NOTIFY_TAKE (TRACE_TASK_NOTIFY_GROUP + 1UL)
1106#define TRACE_TASK_NOTIFY_TAKE_TRCBLOCK (TRACE_TASK_NOTIFY_GROUP + 2UL)
1107#define TRACE_TASK_NOTIFY_TAKE_TRCFAILED (TRACE_TASK_NOTIFY_GROUP + 3UL)
1108#define TRACE_TASK_NOTIFY_WAIT (TRACE_TASK_NOTIFY_GROUP + 4UL)
1109#define TRACE_TASK_NOTIFY_WAIT_TRCBLOCK (TRACE_TASK_NOTIFY_GROUP + 5UL)
1110#define TRACE_TASK_NOTIFY_WAIT_TRCFAILED (TRACE_TASK_NOTIFY_GROUP + 6UL)
1111#define TRACE_TASK_NOTIFY_FROM_ISR (TRACE_TASK_NOTIFY_GROUP + 7UL)
1112#define TRACE_TASK_NOTIFY_GIVE_FROM_ISR (TRACE_TASK_NOTIFY_GROUP + 8UL)
1114#define TIMER_EXPIRED (TRACE_TASK_NOTIFY_GROUP + 9UL)
1117#define EVENTGROUP_PEEK_TRCBLOCK (TRACE_TASK_NOTIFY_GROUP + 10UL)
1123#define EVENTGROUP_PEEK_TRCFAILED (EVENTGROUP_PEEK_TRCBLOCK + 3UL)
1128#define EVENTGROUP_STREAMBUFFER_DIV (EVENTGROUP_PEEK_TRCFAILED + 3UL)
1129#define TRACE_STREAMBUFFER_RESET (EVENTGROUP_STREAMBUFFER_DIV + 0)
1130#define TRACE_MESSAGEBUFFER_RESET (EVENTGROUP_STREAMBUFFER_DIV + 1UL)
1131#define TRACE_STREAMBUFFER_OBJCLOSE_NAME_TRCSUCCESS (EVENTGROUP_STREAMBUFFER_DIV + 2UL)
1132#define TRACE_MESSAGEBUFFER_OBJCLOSE_NAME_TRCSUCCESS (EVENTGROUP_STREAMBUFFER_DIV + 3UL)
1133#define TRACE_STREAMBUFFER_OBJCLOSE_PROP_TRCSUCCESS (EVENTGROUP_STREAMBUFFER_DIV + 4UL)
1134#define TRACE_MESSAGEBUFFER_OBJCLOSE_PROP_TRCSUCCESS (EVENTGROUP_STREAMBUFFER_DIV + 5UL)
1136#define EVENTGROUP_MALLOC_FAILED (EVENTGROUP_STREAMBUFFER_DIV + 6UL)
1137#define MEM_MALLOC_SIZE_TRCFAILED (EVENTGROUP_MALLOC_FAILED + 0UL)
1138#define MEM_MALLOC_ADDR_TRCFAILED (EVENTGROUP_MALLOC_FAILED + 1UL)
1141#define TRACE_STREAMBUFFER_CREATE_OBJ_TRCSUCCESS (EVENTGROUP_CREATE_OBJ_TRCSUCCESS + 4UL)
1142#define TRACE_STREAMBUFFER_CREATE_OBJ_TRCFAILED (EVENTGROUP_CREATE_OBJ_TRCFAILED + 4UL)
1143#define TRACE_STREAMBUFFER_DELETE_OBJ_TRCSUCCESS (EVENTGROUP_DELETE_OBJ_TRCSUCCESS + 4UL)
1144#define TRACE_STREAMBUFFER_SEND_TRCSUCCESS (EVENTGROUP_SEND_TRCSUCCESS + 3UL)
1145#define TRACE_STREAMBUFFER_SEND_TRCBLOCK (EVENTGROUP_SEND_TRCBLOCK + 3UL)
1146#define TRACE_STREAMBUFFER_SEND_TRCFAILED (EVENTGROUP_SEND_TRCFAILED + 3UL)
1147#define TRACE_STREAMBUFFER_RECEIVE_TRCSUCCESS (EVENTGROUP_RECEIVE_TRCSUCCESS + 3UL)
1148#define TRACE_STREAMBUFFER_RECEIVE_TRCBLOCK (EVENTGROUP_RECEIVE_TRCBLOCK + 3UL)
1149#define TRACE_STREAMBUFFER_RECEIVE_TRCFAILED (EVENTGROUP_RECEIVE_TRCFAILED + 3UL)
1150#define TRACE_STREAMBUFFER_SEND_FROM_ISR_TRCSUCCESS (EVENTGROUP_SEND_FROM_ISR_TRCSUCCESS + 3UL)
1151#define TRACE_STREAMBUFFER_SEND_FROM_ISR_TRCFAILED (EVENTGROUP_SEND_FROM_ISR_TRCFAILED + 3UL)
1152#define TRACE_STREAMBUFFER_RECEIVE_FROM_ISR_TRCSUCCESS (EVENTGROUP_RECEIVE_FROM_ISR_TRCSUCCESS + 3UL)
1153#define TRACE_STREAMBUFFER_RECEIVE_FROM_ISR_TRCFAILED (EVENTGROUP_RECEIVE_FROM_ISR_TRCFAILED + 3UL)
1156#define TRACE_MESSAGEBUFFER_CREATE_OBJ_TRCSUCCESS (EVENTGROUP_CREATE_OBJ_TRCSUCCESS + 5UL)
1157#define TRACE_MESSAGEBUFFER_CREATE_OBJ_TRCFAILED (EVENTGROUP_CREATE_OBJ_TRCFAILED + 5UL)
1158#define TRACE_MESSAGEBUFFER_DELETE_OBJ_TRCSUCCESS (EVENTGROUP_DELETE_OBJ_TRCSUCCESS + 5UL)
1159#define TRACE_MESSAGEBUFFER_SEND_TRCSUCCESS (EVENTGROUP_SEND_TRCSUCCESS + 4UL)
1160#define TRACE_MESSAGEBUFFER_SEND_TRCBLOCK (EVENTGROUP_SEND_TRCBLOCK + 4UL)
1161#define TRACE_MESSAGEBUFFER_SEND_TRCFAILED (EVENTGROUP_SEND_TRCFAILED + 4UL)
1162#define TRACE_MESSAGEBUFFER_RECEIVE_TRCSUCCESS (EVENTGROUP_RECEIVE_TRCSUCCESS + 4UL)
1163#define TRACE_MESSAGEBUFFER_RECEIVE_TRCBLOCK (EVENTGROUP_RECEIVE_TRCBLOCK + 4UL)
1164#define TRACE_MESSAGEBUFFER_RECEIVE_TRCFAILED (EVENTGROUP_RECEIVE_TRCFAILED + 4UL)
1165#define TRACE_MESSAGEBUFFER_SEND_FROM_ISR_TRCSUCCESS (EVENTGROUP_SEND_FROM_ISR_TRCSUCCESS + 4UL)
1166#define TRACE_MESSAGEBUFFER_SEND_FROM_ISR_TRCFAILED (EVENTGROUP_SEND_FROM_ISR_TRCFAILED + 4UL)
1167#define TRACE_MESSAGEBUFFER_RECEIVE_FROM_ISR_TRCSUCCESS (EVENTGROUP_RECEIVE_FROM_ISR_TRCSUCCESS + 4UL)
1168#define TRACE_MESSAGEBUFFER_RECEIVE_FROM_ISR_TRCFAILED (EVENTGROUP_RECEIVE_FROM_ISR_TRCFAILED + 4UL)
1170#define TRACE_QUEUE_SEND_TO_FRONT_TRCSUCCESS (EVENTGROUP_SEND_TRCSUCCESS + 5UL)
1171#define TRACE_QUEUE_SEND_TO_FRONT_TRCBLOCK (EVENTGROUP_SEND_TRCBLOCK + 5UL)
1172#define TRACE_QUEUE_SEND_TO_FRONT_TRCFAILED (EVENTGROUP_SEND_TRCFAILED + 5UL)
1173#define TRACE_QUEUE_SEND_TO_FRONT_FROM_ISR_TRCSUCCESS (EVENTGROUP_SEND_FROM_ISR_TRCSUCCESS + 5UL)
1174#define TRACE_QUEUE_SEND_TO_FRONT_FROM_ISR_TRCFAILED (EVENTGROUP_SEND_FROM_ISR_TRCFAILED + 5UL)
1176#define TRACE_UNUSED_STACK (EVENTGROUP_MALLOC_FAILED + 2UL)
1183#define TRACE_GET_TRACE_CLASS_FROM_TASK_CLASS(kernelClass) (TRACE_CLASS_TASK)
1184#define TRACE_GET_TRACE_CLASS_FROM_TASK_OBJECT(pxObject) (TRACE_CLASS_TASK)
1186#define TRACE_GET_TRACE_CLASS_FROM_QUEUE_CLASS(kernelClass) TraceQueueClassTable[kernelClass]
1187#define TRACE_GET_TRACE_CLASS_FROM_QUEUE_OBJECT(pxObject) TRACE_GET_TRACE_CLASS_FROM_QUEUE_CLASS(prvTraceGetQueueType(pxObject))
1189#define TRACE_GET_TRACE_CLASS_FROM_TIMER_CLASS(kernelClass) (TRACE_CLASS_TIMER)
1190#define TRACE_GET_TRACE_CLASS_FROM_TIMER_OBJECT(pxObject) (TRACE_CLASS_TIMER)
1192#define TRACE_GET_TRACE_CLASS_FROM_EVENTGROUP_CLASS(kernelClass) (TRACE_CLASS_EVENTGROUP)
1193#define TRACE_GET_TRACE_CLASS_FROM_EVENTGROUP_OBJECT(pxObject) (TRACE_CLASS_EVENTGROUP)
1196#define TRACE_GET_TRACE_CLASS_FROM_STREAMBUFFER_CLASS(xIsMessageBuffer) (xIsMessageBuffer == 1 ? TRACE_CLASS_MESSAGEBUFFER : TRACE_CLASS_STREAMBUFFER)
1197#define TRACE_GET_TRACE_CLASS_FROM_STREAMBUFFER_OBJECT(pxObject) (prvGetStreamBufferType(pxObject) == 1 ? TRACE_CLASS_MESSAGEBUFFER : TRACE_CLASS_STREAMBUFFER)
1200#define TRACE_GET_CLASS_TRACE_CLASS(CLASS, kernelClass) TRACE_GET_TRACE_CLASS_FROM_##CLASS##_CLASS(kernelClass)
1201#define TRACE_GET_OBJECT_TRACE_CLASS(CLASS, pxObject) TRACE_GET_TRACE_CLASS_FROM_##CLASS##_OBJECT(pxObject)
1206#define TRACE_GET_TASK_NUMBER(pxTCB) (traceHandle)(prvTraceGetTaskNumberLow16(pxTCB))
1207#define TRACE_SET_TASK_NUMBER(pxTCB) prvTraceSetTaskNumberLow16(pxTCB, prvTraceGetObjectHandle(TRACE_GET_OBJECT_TRACE_CLASS(TASK, pxTCB)));
1209#define TRACE_GET_QUEUE_NUMBER(queue) ( ( traceHandle ) prvTraceGetQueueNumberLow16(queue) )
1210#define TRACE_SET_QUEUE_NUMBER(queue) prvTraceSetQueueNumberLow16(queue, (uint16_t)prvTraceGetObjectHandle(TRACE_GET_OBJECT_TRACE_CLASS(QUEUE, queue)));
1212#if (TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_10_0_0)
1213#define TRACE_GET_TIMER_NUMBER(tmr) ( ( traceHandle ) prvTraceGetTimerNumberLow16(tmr) )
1214#define TRACE_SET_TIMER_NUMBER(tmr) prvTraceSetTimerNumberLow16(tmr, (uint16_t)prvTraceGetObjectHandle(TRACE_GET_OBJECT_TRACE_CLASS(TIMER, tmr)));
1216#define TRACE_GET_TIMER_NUMBER(tmr) ( ( traceHandle ) ((Timer_t*)tmr)->uxTimerNumber )
1217#define TRACE_SET_TIMER_NUMBER(tmr) ((Timer_t*)tmr)->uxTimerNumber = prvTraceGetObjectHandle(TRACE_GET_OBJECT_TRACE_CLASS(TIMER, tmr));
1220#if (TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_10_0_0)
1221#define TRACE_GET_EVENTGROUP_NUMBER(eg) ( ( traceHandle ) prvTraceGetEventGroupNumberLow16(eg) )
1222#define TRACE_SET_EVENTGROUP_NUMBER(eg) prvTraceSetEventGroupNumberLow16(eg, (uint16_t)prvTraceGetObjectHandle(TRACE_GET_OBJECT_TRACE_CLASS(EVENTGROUP, eg)));
1224#define TRACE_GET_EVENTGROUP_NUMBER(eg) ( ( traceHandle ) uxEventGroupGetNumber(eg) )
1225#define TRACE_SET_EVENTGROUP_NUMBER(eg) ((EventGroup_t*)eg)->uxEventGroupNumber = prvTraceGetObjectHandle(TRACE_GET_OBJECT_TRACE_CLASS(EVENTGROUP, eg));
1229#define TRACE_GET_STREAMBUFFER_NUMBER(sb) ( ( traceHandle ) prvTraceGetStreamBufferNumberLow16(sb) )
1230#define TRACE_SET_STREAMBUFFER_NUMBER(sb) prvTraceSetStreamBufferNumberLow16(sb, (uint16_t)prvTraceGetObjectHandle(TRACE_GET_OBJECT_TRACE_CLASS(STREAMBUFFER, sb)));
1233#define TRACE_GET_OBJECT_NUMBER(CLASS, pxObject) TRACE_GET_##CLASS##_NUMBER(pxObject)
1234#define TRACE_SET_OBJECT_NUMBER(CLASS, pxObject) TRACE_SET_##CLASS##_NUMBER(pxObject)
1239#define TRACE_GET_TASK_CLASS_EVENT_CODE(SERVICE, RESULT, kernelClass) (uint8_t)(EVENTGROUP_##SERVICE##_##RESULT + TRACE_GET_CLASS_TRACE_CLASS(TASK, kernelClass))
1240#define TRACE_GET_QUEUE_CLASS_EVENT_CODE(SERVICE, RESULT, kernelClass) (uint8_t)(EVENTGROUP_##SERVICE##_##RESULT + TRACE_GET_CLASS_TRACE_CLASS(QUEUE, kernelClass))
1241#define TRACE_GET_TIMER_CLASS_EVENT_CODE(SERVICE, RESULT, kernelClass) -- THIS IS NOT USED --
1242#define TRACE_GET_EVENTGROUP_CLASS_EVENT_CODE(SERVICE, RESULT, kernelClass) -- THIS IS NOT USED --
1243#define TRACE_GET_STREAMBUFFER_CLASS_EVENT_CODE(SERVICE, RESULT, isMessageBuffer) (uint8_t)(TRACE_STREAMBUFFER_##SERVICE##_##RESULT + (uint8_t)isMessageBuffer)
1245#define TRACE_GET_TASK_OBJECT_EVENT_CODE(SERVICE, RESULT, pxTCB) (uint8_t)(EVENTGROUP_##SERVICE##_##RESULT + TRACE_CLASS_TASK)
1246#define TRACE_GET_QUEUE_OBJECT_EVENT_CODE(SERVICE, RESULT, pxObject) (uint8_t)(EVENTGROUP_##SERVICE##_##RESULT + TRACE_GET_OBJECT_TRACE_CLASS(QUEUE, pxObject))
1247#define TRACE_GET_TIMER_OBJECT_EVENT_CODE(SERVICE, RESULT, UNUSED) -- THIS IS NOT USED --
1248#define TRACE_GET_EVENTGROUP_OBJECT_EVENT_CODE(SERVICE, RESULT, UNUSED) -- THIS IS NOT USED --
1249#define TRACE_GET_STREAMBUFFER_OBJECT_EVENT_CODE(SERVICE, RESULT, pxObject) (uint8_t)(TRACE_STREAMBUFFER_##SERVICE##_##RESULT + prvGetStreamBufferType(pxObject))
1252#define TRACE_GET_CLASS_EVENT_CODE(SERVICE, RESULT, CLASS, kernelClass) TRACE_GET_##CLASS##_CLASS_EVENT_CODE(SERVICE, RESULT, kernelClass)
1253#define TRACE_GET_OBJECT_EVENT_CODE(SERVICE, RESULT, CLASS, pxObject) TRACE_GET_##CLASS##_OBJECT_EVENT_CODE(SERVICE, RESULT, pxObject)
1258#define TRACE_GET_TASK_PRIORITY(pxTCB) ((uint8_t)pxTCB->uxPriority)
1259#define TRACE_GET_TASK_NAME(pxTCB) ((char*)pxTCB->pcTaskName)
1264#undef traceINCREASE_TICK_COUNT
1265#define traceINCREASE_TICK_COUNT( xCount )
1268#undef traceMOVED_TASK_TO_READY_STATE
1269#define traceMOVED_TASK_TO_READY_STATE( pxTCB ) \
1270 trcKERNEL_HOOKS_MOVED_TASK_TO_READY_STATE(pxTCB);
1273#undef traceTASK_INCREMENT_TICK
1275#if (TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_10_3_0)
1277#define traceTASK_INCREMENT_TICK( xTickCount ) \
1278 if (uxSchedulerSuspended == ( unsigned portBASE_TYPE ) pdTRUE || xPendedTicks == 0) { trcKERNEL_HOOKS_INCREMENT_TICK(); } \
1279 if (uxSchedulerSuspended == ( unsigned portBASE_TYPE ) pdFALSE) { trcKERNEL_HOOKS_NEW_TIME(DIV_NEW_TIME, xTickCount + 1); }
1281#elif (TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_7_5_X)
1283#define traceTASK_INCREMENT_TICK( xTickCount ) \
1284 if (uxSchedulerSuspended == ( unsigned portBASE_TYPE ) pdTRUE || uxPendedTicks == 0) { trcKERNEL_HOOKS_INCREMENT_TICK(); } \
1285 if (uxSchedulerSuspended == ( unsigned portBASE_TYPE ) pdFALSE) { trcKERNEL_HOOKS_NEW_TIME(DIV_NEW_TIME, xTickCount + 1); }
1289#define traceTASK_INCREMENT_TICK( xTickCount ) \
1290 if (uxSchedulerSuspended == ( unsigned portBASE_TYPE ) pdTRUE || uxMissedTicks == 0) { trcKERNEL_HOOKS_INCREMENT_TICK(); } \
1291 if (uxSchedulerSuspended == ( unsigned portBASE_TYPE ) pdFALSE) { trcKERNEL_HOOKS_NEW_TIME(DIV_NEW_TIME, xTickCount + 1); }
1295extern volatile uint32_t uiTraceSystemState;
1298#undef traceTASK_SWITCHED_IN
1299#define traceTASK_SWITCHED_IN() \
1300 uiTraceSystemState = TRC_STATE_IN_TASKSWITCH; \
1301 trcKERNEL_HOOKS_TASK_SWITCH(TRACE_GET_CURRENT_TASK()); \
1302 uiTraceSystemState = TRC_STATE_IN_APPLICATION;
1305#undef traceTASK_CREATE
1306#define traceTASK_CREATE(pxNewTCB) \
1307 if (pxNewTCB != 0) \
1309 trcKERNEL_HOOKS_TASK_CREATE(TRACE_GET_OBJECT_EVENT_CODE(CREATE_OBJ, TRCSUCCESS, TASK, pxNewTCB), TASK, pxNewTCB); \
1310 prvAddTaskToStackMonitor(pxNewTCB); \
1314#undef traceTASK_CREATE_FAILED
1315#define traceTASK_CREATE_FAILED() \
1316 trcKERNEL_HOOKS_OBJECT_CREATE_FAILED(TRACE_GET_CLASS_EVENT_CODE(CREATE_OBJ, TRCFAILED, TASK, NOT_USED), TRACE_GET_CLASS_TRACE_CLASS(TASK, NOT_USED))
1319#undef traceTASK_DELETE
1320#define traceTASK_DELETE( pxTaskToDelete ) \
1321 { TRACE_ALLOC_CRITICAL_SECTION(); \
1322 TRACE_ENTER_CRITICAL_SECTION(); \
1323 trcKERNEL_HOOKS_TASK_DELETE(TRACE_GET_OBJECT_EVENT_CODE(DELETE_OBJ, TRCSUCCESS, TASK, pxTaskToDelete), TRACE_GET_OBJECT_EVENT_CODE(OBJCLOSE_NAME, TRCSUCCESS, TASK, pxTaskToDelete), TRACE_GET_OBJECT_EVENT_CODE(OBJCLOSE_PROP, TRCSUCCESS, TASK, pxTaskToDelete), pxTaskToDelete); \
1324 prvRemoveTaskFromStackMonitor(pxTaskToDelete); \
1325 TRACE_EXIT_CRITICAL_SECTION(); }
1327#if (TRC_CFG_SCHEDULING_ONLY == 0)
1329#if defined(configUSE_TICKLESS_IDLE) && (configUSE_TICKLESS_IDLE != 0)
1331#undef traceLOW_POWER_IDLE_BEGIN
1332#define traceLOW_POWER_IDLE_BEGIN() \
1334 extern uint32_t trace_disable_timestamp; \
1335 prvTraceStoreLowPower(0); \
1336 trace_disable_timestamp = 1; \
1339#undef traceLOW_POWER_IDLE_END
1340#define traceLOW_POWER_IDLE_END() \
1342 extern uint32_t trace_disable_timestamp; \
1343 trace_disable_timestamp = 0; \
1344 prvTraceStoreLowPower(1); \
1350#undef traceTASK_SUSPEND
1351#define traceTASK_SUSPEND( pxTaskToSuspend ) \
1352 trcKERNEL_HOOKS_TASK_SUSPEND(TASK_SUSPEND, pxTaskToSuspend);
1355#undef traceTASK_DELAY_SUSPEND
1356#define traceTASK_DELAY_SUSPEND( pxTaskToSuspend ) \
1357 trcKERNEL_HOOKS_TASK_SUSPEND(TASK_SUSPEND, pxTaskToSuspend); \
1358 trcKERNEL_HOOKS_SET_TASK_INSTANCE_FINISHED();
1361#undef traceTASK_DELAY
1362#define traceTASK_DELAY() \
1363 trcKERNEL_HOOKS_TASK_DELAY(TASK_DELAY, pxCurrentTCB, xTicksToDelay); \
1364 trcKERNEL_HOOKS_SET_TASK_INSTANCE_FINISHED();
1367#undef traceTASK_DELAY_UNTIL
1368#if (TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_9_0_0)
1370#define traceTASK_DELAY_UNTIL(xTimeToWake) \
1371 trcKERNEL_HOOKS_TASK_DELAY(TASK_DELAY_UNTIL, pxCurrentTCB, xTimeToWake); \
1372 trcKERNEL_HOOKS_SET_TASK_INSTANCE_FINISHED();
1375#define traceTASK_DELAY_UNTIL() \
1376 trcKERNEL_HOOKS_TASK_DELAY(TASK_DELAY_UNTIL, pxCurrentTCB, xTimeToWake); \
1377 trcKERNEL_HOOKS_SET_TASK_INSTANCE_FINISHED();
1382#undef traceQUEUE_CREATE
1383#define traceQUEUE_CREATE( pxNewQueue ) \
1384 trcKERNEL_HOOKS_OBJECT_CREATE(TRACE_GET_OBJECT_EVENT_CODE(CREATE_OBJ, TRCSUCCESS, QUEUE, pxNewQueue), QUEUE, pxNewQueue);
1387#undef traceQUEUE_CREATE_FAILED
1388#define traceQUEUE_CREATE_FAILED( queueType ) \
1389 trcKERNEL_HOOKS_OBJECT_CREATE_FAILED(TRACE_GET_CLASS_EVENT_CODE(CREATE_OBJ, TRCFAILED, QUEUE, queueType), TRACE_GET_CLASS_TRACE_CLASS(QUEUE, queueType))
1392#undef traceQUEUE_DELETE
1393#define traceQUEUE_DELETE( pxQueue ) \
1394 { TRACE_ALLOC_CRITICAL_SECTION(); \
1395 TRACE_ENTER_CRITICAL_SECTION(); \
1396 trcKERNEL_HOOKS_OBJECT_DELETE(TRACE_GET_OBJECT_EVENT_CODE(DELETE_OBJ, TRCSUCCESS, QUEUE, pxQueue), TRACE_GET_OBJECT_EVENT_CODE(OBJCLOSE_NAME, TRCSUCCESS, QUEUE, pxQueue), TRACE_GET_OBJECT_EVENT_CODE(OBJCLOSE_PROP, TRCSUCCESS, QUEUE, pxQueue), QUEUE, pxQueue); \
1397 TRACE_EXIT_CRITICAL_SECTION(); }
1400#if (TRC_CFG_FREERTOS_VERSION < TRC_FREERTOS_VERSION_9_0_0)
1403#undef traceCREATE_MUTEX
1404#define traceCREATE_MUTEX( pxNewQueue ) \
1405 trcKERNEL_HOOKS_OBJECT_CREATE(TRACE_GET_OBJECT_EVENT_CODE(CREATE_OBJ, TRCSUCCESS, QUEUE, pxNewQueue), QUEUE, pxNewQueue);
1408#undef traceCREATE_MUTEX_FAILED
1409#define traceCREATE_MUTEX_FAILED() \
1410 trcKERNEL_HOOKS_KERNEL_SERVICE_WITH_NUMERIC_PARAM_ONLY(TRACE_GET_CLASS_EVENT_CODE(CREATE_OBJ, TRCFAILED, QUEUE, queueQUEUE_TYPE_MUTEX), 0);
1415#undef traceGIVE_MUTEX_RECURSIVE_FAILED
1416#define traceGIVE_MUTEX_RECURSIVE_FAILED( pxMutex ) \
1417 trcKERNEL_HOOKS_KERNEL_SERVICE(TRACE_GET_OBJECT_EVENT_CODE(SEND, TRCFAILED, QUEUE, pxMutex), QUEUE, pxMutex);
1420#undef traceQUEUE_SEND
1421#define traceQUEUE_SEND( pxQueue ) \
1422 trcKERNEL_HOOKS_KERNEL_SERVICE(xCopyPosition == queueSEND_TO_BACK ? (TRACE_GET_OBJECT_EVENT_CODE(SEND, TRCSUCCESS, QUEUE, pxQueue)) : TRACE_QUEUE_SEND_TO_FRONT_TRCSUCCESS, QUEUE, pxQueue); \
1423 trcKERNEL_HOOKS_SET_OBJECT_STATE(QUEUE, pxQueue, TRACE_GET_OBJECT_TRACE_CLASS(QUEUE, pxQueue) == TRACE_CLASS_MUTEX ? (uint8_t)0 : (uint8_t)(pxQueue->uxMessagesWaiting + 1));
1426#undef traceQUEUE_SET_SEND
1427#define traceQUEUE_SET_SEND( pxQueue ) \
1428 trcKERNEL_HOOKS_KERNEL_SERVICE(TRACE_GET_OBJECT_EVENT_CODE(SEND, TRCSUCCESS, QUEUE, pxQueue), QUEUE, pxQueue); \
1429 trcKERNEL_HOOKS_SET_OBJECT_STATE(QUEUE, pxQueue, (uint8_t)(pxQueue->uxMessagesWaiting + 1));
1432#undef traceQUEUE_SEND_FAILED
1433#define traceQUEUE_SEND_FAILED( pxQueue ) \
1434 trcKERNEL_HOOKS_KERNEL_SERVICE(xCopyPosition == queueSEND_TO_BACK ? (TRACE_GET_OBJECT_EVENT_CODE(SEND, TRCFAILED, QUEUE, pxQueue)) : TRACE_QUEUE_SEND_TO_FRONT_TRCFAILED, QUEUE, pxQueue);
1437#undef traceBLOCKING_ON_QUEUE_SEND
1438#define traceBLOCKING_ON_QUEUE_SEND( pxQueue ) \
1439 trcKERNEL_HOOKS_KERNEL_SERVICE(xCopyPosition == queueSEND_TO_BACK ? (TRACE_GET_OBJECT_EVENT_CODE(SEND, TRCBLOCK, QUEUE, pxQueue)) : TRACE_QUEUE_SEND_TO_FRONT_TRCBLOCK, QUEUE, pxQueue);
1442#undef traceQUEUE_RECEIVE
1443#define traceQUEUE_RECEIVE( pxQueue ) \
1444 if (isQueueReceiveHookActuallyPeek) \
1446 trcKERNEL_HOOKS_KERNEL_SERVICE(TRACE_GET_OBJECT_EVENT_CODE(PEEK, TRCSUCCESS, QUEUE, pxQueue), QUEUE, pxQueue); \
1450 trcKERNEL_HOOKS_KERNEL_SERVICE(TRACE_GET_OBJECT_EVENT_CODE(RECEIVE, TRCSUCCESS, QUEUE, pxQueue), QUEUE, pxQueue); \
1452 trcKERNEL_HOOKS_SET_OBJECT_STATE(QUEUE, pxQueue, TRACE_GET_OBJECT_TRACE_CLASS(QUEUE, pxQueue) == TRACE_CLASS_MUTEX ? (uint8_t)TRACE_GET_TASK_NUMBER(TRACE_GET_CURRENT_TASK()) : (uint8_t)(pxQueue->uxMessagesWaiting - 1));
1455#undef traceQUEUE_RECEIVE_FAILED
1456#define traceQUEUE_RECEIVE_FAILED( pxQueue ) \
1457 if (isQueueReceiveHookActuallyPeek) \
1459 trcKERNEL_HOOKS_KERNEL_SERVICE(TRACE_GET_OBJECT_EVENT_CODE(PEEK, TRCFAILED, QUEUE, pxQueue), QUEUE, pxQueue); \
1463 trcKERNEL_HOOKS_KERNEL_SERVICE(TRACE_GET_OBJECT_EVENT_CODE(RECEIVE, TRCFAILED, QUEUE, pxQueue), QUEUE, pxQueue); \
1467#undef traceBLOCKING_ON_QUEUE_RECEIVE
1468#define traceBLOCKING_ON_QUEUE_RECEIVE( pxQueue ) \
1469 if (isQueueReceiveHookActuallyPeek) \
1471 trcKERNEL_HOOKS_KERNEL_SERVICE(TRACE_GET_OBJECT_EVENT_CODE(PEEK, TRCBLOCK, QUEUE, pxQueue), QUEUE, pxQueue); \
1475 trcKERNEL_HOOKS_KERNEL_SERVICE(TRACE_GET_OBJECT_EVENT_CODE(RECEIVE, TRCBLOCK, QUEUE, pxQueue), QUEUE, pxQueue); \
1477 if (TRACE_GET_OBJECT_TRACE_CLASS(QUEUE, pxQueue) != TRACE_CLASS_MUTEX) \
1479 trcKERNEL_HOOKS_SET_TASK_INSTANCE_FINISHED(); \
1483#undef traceQUEUE_PEEK
1484#define traceQUEUE_PEEK( pxQueue ) \
1485 trcKERNEL_HOOKS_KERNEL_SERVICE(TRACE_GET_OBJECT_EVENT_CODE(PEEK, TRCSUCCESS, QUEUE, pxQueue), QUEUE, pxQueue);
1488#undef traceQUEUE_PEEK_FAILED
1489#define traceQUEUE_PEEK_FAILED( pxQueue ) \
1490 trcKERNEL_HOOKS_KERNEL_SERVICE(TRACE_GET_OBJECT_EVENT_CODE(PEEK, TRCFAILED, QUEUE, pxQueue), QUEUE, pxQueue);
1493#undef traceBLOCKING_ON_QUEUE_PEEK
1494#define traceBLOCKING_ON_QUEUE_PEEK( pxQueue ) \
1495 trcKERNEL_HOOKS_KERNEL_SERVICE(TRACE_GET_OBJECT_EVENT_CODE(PEEK, TRCBLOCK, QUEUE, pxQueue), QUEUE, pxQueue); \
1496 if (TRACE_GET_OBJECT_TRACE_CLASS(QUEUE, pxQueue) != TRACE_CLASS_MUTEX) \
1498 trcKERNEL_HOOKS_SET_TASK_INSTANCE_FINISHED(); \
1502#undef traceQUEUE_SEND_FROM_ISR
1503#define traceQUEUE_SEND_FROM_ISR( pxQueue ) \
1504 trcKERNEL_HOOKS_KERNEL_SERVICE_FROM_ISR(xCopyPosition == queueSEND_TO_BACK ? (TRACE_GET_OBJECT_EVENT_CODE(SEND_FROM_ISR, TRCSUCCESS, QUEUE, pxQueue)) : TRACE_QUEUE_SEND_TO_FRONT_FROM_ISR_TRCSUCCESS, QUEUE, pxQueue); \
1505 trcKERNEL_HOOKS_SET_OBJECT_STATE(QUEUE, pxQueue, (uint8_t)(pxQueue->uxMessagesWaiting + 1));
1508#undef traceQUEUE_SEND_FROM_ISR_FAILED
1509#define traceQUEUE_SEND_FROM_ISR_FAILED( pxQueue ) \
1510 trcKERNEL_HOOKS_KERNEL_SERVICE_FROM_ISR(xCopyPosition == queueSEND_TO_BACK ? (TRACE_GET_OBJECT_EVENT_CODE(SEND_FROM_ISR, TRCFAILED, QUEUE, pxQueue)) : TRACE_QUEUE_SEND_TO_FRONT_FROM_ISR_TRCFAILED, QUEUE, pxQueue);
1513#undef traceQUEUE_RECEIVE_FROM_ISR
1514#define traceQUEUE_RECEIVE_FROM_ISR( pxQueue ) \
1515 trcKERNEL_HOOKS_KERNEL_SERVICE_FROM_ISR(TRACE_GET_OBJECT_EVENT_CODE(RECEIVE_FROM_ISR, TRCSUCCESS, QUEUE, pxQueue), QUEUE, pxQueue); \
1516 trcKERNEL_HOOKS_SET_OBJECT_STATE(QUEUE, pxQueue, (uint8_t)(pxQueue->uxMessagesWaiting - 1));
1519#undef traceQUEUE_RECEIVE_FROM_ISR_FAILED
1520#define traceQUEUE_RECEIVE_FROM_ISR_FAILED( pxQueue ) \
1521 trcKERNEL_HOOKS_KERNEL_SERVICE_FROM_ISR(TRACE_GET_OBJECT_EVENT_CODE(RECEIVE_FROM_ISR, TRCFAILED, QUEUE, pxQueue), QUEUE, pxQueue);
1523#undef traceQUEUE_REGISTRY_ADD
1524#define traceQUEUE_REGISTRY_ADD(object, name) prvTraceSetObjectName(TRACE_GET_OBJECT_TRACE_CLASS(QUEUE, object), TRACE_GET_OBJECT_NUMBER(QUEUE, object), name);
1527#undef traceTASK_PRIORITY_SET
1528#define traceTASK_PRIORITY_SET( pxTask, uxNewPriority ) \
1529 trcKERNEL_HOOKS_TASK_PRIORITY_CHANGE(TASK_PRIORITY_SET, pxTask, uxNewPriority);
1532#undef traceTASK_PRIORITY_INHERIT
1533#define traceTASK_PRIORITY_INHERIT( pxTask, uxNewPriority ) \
1534 trcKERNEL_HOOKS_TASK_PRIORITY_CHANGE(TASK_PRIORITY_INHERIT, pxTask, uxNewPriority);
1537#undef traceTASK_PRIORITY_DISINHERIT
1538#define traceTASK_PRIORITY_DISINHERIT( pxTask, uxNewPriority ) \
1539 trcKERNEL_HOOKS_TASK_PRIORITY_CHANGE(TASK_PRIORITY_DISINHERIT, pxTask, uxNewPriority);
1542#undef traceTASK_RESUME
1543#define traceTASK_RESUME( pxTaskToResume ) \
1544 trcKERNEL_HOOKS_TASK_RESUME(TASK_RESUME, pxTaskToResume);
1547#undef traceTASK_RESUME_FROM_ISR
1548#define traceTASK_RESUME_FROM_ISR( pxTaskToResume ) \
1549 trcKERNEL_HOOKS_TASK_RESUME_FROM_ISR(TASK_RESUME_FROM_ISR, pxTaskToResume);
1552#if (TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_8_X_X)
1554#if (TRC_CFG_INCLUDE_MEMMANG_EVENTS == 1)
1556extern void vTraceStoreMemMangEvent(uint32_t ecode, uint32_t address, int32_t size);
1560#define traceMALLOC( pvAddress, uiSize ) \
1561 if (pvAddress != 0) \
1563 vTraceStoreMemMangEvent(MEM_MALLOC_SIZE, ( uint32_t ) pvAddress, (int32_t)uiSize); \
1567 vTraceStoreMemMangEvent(MEM_MALLOC_SIZE_TRCFAILED, ( uint32_t ) pvAddress, (int32_t)uiSize); \
1571#define traceFREE( pvAddress, uiSize ) \
1572 vTraceStoreMemMangEvent(MEM_FREE_SIZE, ( uint32_t ) pvAddress, -((int32_t)uiSize));
1576#if (TRC_CFG_INCLUDE_TIMER_EVENTS == 1)
1579#undef traceTIMER_CREATE
1580#define traceTIMER_CREATE(tmr) \
1581 trcKERNEL_HOOKS_OBJECT_CREATE(TIMER_CREATE, TIMER, tmr);
1583#undef traceTIMER_CREATE_FAILED
1584#define traceTIMER_CREATE_FAILED() \
1585 trcKERNEL_HOOKS_OBJECT_CREATE_FAILED(TIMER_CREATE_TRCFAILED, TRACE_GET_CLASS_TRACE_CLASS(TIMER, NOT_USED))
1588#undef traceTIMER_COMMAND_SEND
1589#define traceTIMER_COMMAND_SEND(tmr, xCommandID, xOptionalValue, xReturn) \
1590 if (xCommandID > tmrCOMMAND_START_DONT_TRACE) \
1592 if (xCommandID == tmrCOMMAND_CHANGE_PERIOD) \
1594 if (xReturn == pdPASS) { \
1595 trcKERNEL_HOOKS_KERNEL_SERVICE_WITH_PARAM(TIMER_CHANGE_PERIOD, TIMER, tmr, xOptionalValue); \
1599 trcKERNEL_HOOKS_KERNEL_SERVICE_WITH_PARAM(TIMER_CHANGE_PERIOD_TRCFAILED, TIMER, tmr, xOptionalValue); \
1602 else if ((xCommandID == tmrCOMMAND_DELETE) && (xReturn == pdPASS)) \
1604 trcKERNEL_HOOKS_OBJECT_DELETE(TIMER_DELETE_OBJ, EVENTGROUP_OBJCLOSE_NAME_TRCSUCCESS + TRACE_GET_OBJECT_TRACE_CLASS(TIMER, tmr), EVENTGROUP_OBJCLOSE_PROP_TRCSUCCESS + TRACE_GET_OBJECT_TRACE_CLASS(TIMER, tmr), TIMER, tmr); \
1608 trcKERNEL_HOOKS_KERNEL_SERVICE_WITH_PARAM(EVENTGROUP_TIMER + (uint32_t)xCommandID + ((xReturn == pdPASS) ? 0 : (TIMER_CREATE_TRCFAILED - TIMER_CREATE)), TIMER, tmr, xOptionalValue); \
1612#undef traceTIMER_EXPIRED
1613#define traceTIMER_EXPIRED(tmr) \
1614 trcKERNEL_HOOKS_KERNEL_SERVICE(TIMER_EXPIRED, TIMER, tmr);
1618#if (TRC_CFG_INCLUDE_PEND_FUNC_CALL_EVENTS == 1)
1620#undef tracePEND_FUNC_CALL
1621#define tracePEND_FUNC_CALL(func, arg1, arg2, ret) \
1622 if (ret == pdPASS){ \
1623 trcKERNEL_HOOKS_KERNEL_SERVICE(PEND_FUNC_CALL, TASK, xTimerGetTimerDaemonTaskHandle() ); \
1627 trcKERNEL_HOOKS_KERNEL_SERVICE(PEND_FUNC_CALL_TRCFAILED, TASK, xTimerGetTimerDaemonTaskHandle() ); \
1630#undef tracePEND_FUNC_CALL_FROM_ISR
1631#define tracePEND_FUNC_CALL_FROM_ISR(func, arg1, arg2, ret) \
1632 if (! uiInEventGroupSetBitsFromISR) \
1633 prvTraceStoreKernelCall(PEND_FUNC_CALL_FROM_ISR, TRACE_CLASS_TASK, TRACE_GET_TASK_NUMBER(xTimerGetTimerDaemonTaskHandle()) ); \
1634 uiInEventGroupSetBitsFromISR = 0;
1640#if (TRC_CFG_INCLUDE_EVENT_GROUP_EVENTS == 1)
1642#undef traceEVENT_GROUP_CREATE
1643#define traceEVENT_GROUP_CREATE(eg) \
1644 trcKERNEL_HOOKS_OBJECT_CREATE(EVENT_GROUP_CREATE, EVENTGROUP, eg)
1646#undef traceEVENT_GROUP_CREATE_FAILED
1647#define traceEVENT_GROUP_CREATE_FAILED() \
1648 trcKERNEL_HOOKS_OBJECT_CREATE_FAILED(EVENT_GROUP_CREATE_TRCFAILED, TRACE_GET_CLASS_TRACE_CLASS(EVENTGROUP, NOT_USED))
1650#undef traceEVENT_GROUP_DELETE
1651#define traceEVENT_GROUP_DELETE(eg) \
1652 { TRACE_ALLOC_CRITICAL_SECTION(); \
1653 TRACE_ENTER_CRITICAL_SECTION(); \
1654 trcKERNEL_HOOKS_OBJECT_DELETE(EVENT_GROUP_DELETE_OBJ, EVENTGROUP_OBJCLOSE_NAME_TRCSUCCESS + TRACE_GET_OBJECT_TRACE_CLASS(EVENTGROUP, eg), EVENTGROUP_OBJCLOSE_NAME_TRCSUCCESS + TRACE_GET_OBJECT_TRACE_CLASS(EVENTGROUP, eg), EVENTGROUP, eg); \
1655 TRACE_EXIT_CRITICAL_SECTION(); }
1657#undef traceEVENT_GROUP_SYNC_BLOCK
1658#define traceEVENT_GROUP_SYNC_BLOCK(eg, bitsToSet, bitsToWaitFor) \
1659 trcKERNEL_HOOKS_KERNEL_SERVICE_WITH_PARAM(EVENT_GROUP_SYNC_TRCBLOCK, EVENTGROUP, eg, bitsToWaitFor);
1661#undef traceEVENT_GROUP_SYNC_END
1662#define traceEVENT_GROUP_SYNC_END(eg, bitsToSet, bitsToWaitFor, wasTimeout) \
1665 trcKERNEL_HOOKS_KERNEL_SERVICE_WITH_PARAM(EVENT_GROUP_SYNC_END_TRCFAILED, EVENTGROUP, eg, bitsToWaitFor); \
1669 trcKERNEL_HOOKS_KERNEL_SERVICE_WITH_PARAM(EVENT_GROUP_SYNC_END, EVENTGROUP, eg, bitsToWaitFor); \
1672#undef traceEVENT_GROUP_WAIT_BITS_BLOCK
1673#define traceEVENT_GROUP_WAIT_BITS_BLOCK(eg, bitsToWaitFor) \
1674 trcKERNEL_HOOKS_KERNEL_SERVICE_WITH_PARAM(EVENT_GROUP_WAIT_BITS_TRCBLOCK, EVENTGROUP, eg, bitsToWaitFor); \
1675 trcKERNEL_HOOKS_SET_TASK_INSTANCE_FINISHED();
1677#undef traceEVENT_GROUP_WAIT_BITS_END
1678#define traceEVENT_GROUP_WAIT_BITS_END(eg, bitsToWaitFor, wasTimeout) \
1681 trcKERNEL_HOOKS_KERNEL_SERVICE_WITH_PARAM(EVENT_GROUP_WAIT_BITS_END_TRCFAILED, EVENTGROUP, eg, bitsToWaitFor); \
1685 trcKERNEL_HOOKS_KERNEL_SERVICE_WITH_PARAM(EVENT_GROUP_WAIT_BITS_END, EVENTGROUP, eg, bitsToWaitFor); \
1688#undef traceEVENT_GROUP_CLEAR_BITS
1689#define traceEVENT_GROUP_CLEAR_BITS(eg, bitsToClear) \
1690 trcKERNEL_HOOKS_KERNEL_SERVICE_WITH_PARAM(EVENT_GROUP_CLEAR_BITS, EVENTGROUP, eg, bitsToClear);
1692#undef traceEVENT_GROUP_CLEAR_BITS_FROM_ISR
1693#define traceEVENT_GROUP_CLEAR_BITS_FROM_ISR(eg, bitsToClear) \
1694 trcKERNEL_HOOKS_KERNEL_SERVICE_WITH_PARAM_FROM_ISR(EVENT_GROUP_CLEAR_BITS_FROM_ISR, EVENTGROUP, eg, bitsToClear);
1696#undef traceEVENT_GROUP_SET_BITS
1697#define traceEVENT_GROUP_SET_BITS(eg, bitsToSet) \
1698 trcKERNEL_HOOKS_KERNEL_SERVICE_WITH_PARAM(EVENT_GROUP_SET_BITS, EVENTGROUP, eg, bitsToSet);
1700#undef traceEVENT_GROUP_SET_BITS_FROM_ISR
1701#define traceEVENT_GROUP_SET_BITS_FROM_ISR(eg, bitsToSet) \
1702 trcKERNEL_HOOKS_KERNEL_SERVICE_WITH_PARAM_FROM_ISR(EVENT_GROUP_SET_BITS_FROM_ISR, EVENTGROUP, eg, bitsToSet); \
1703 uiInEventGroupSetBitsFromISR = 1;
1707#undef traceTASK_NOTIFY_TAKE
1708#if (TRC_CFG_FREERTOS_VERSION < TRC_FREERTOS_VERSION_9_0_0)
1710#define traceTASK_NOTIFY_TAKE() \
1711 if (pxCurrentTCB->eNotifyState == eNotified){ \
1712 trcKERNEL_HOOKS_KERNEL_SERVICE_WITH_PARAM(TRACE_TASK_NOTIFY_TAKE, TASK, pxCurrentTCB, xTicksToWait); \
1715 trcKERNEL_HOOKS_KERNEL_SERVICE_WITH_PARAM(TRACE_TASK_NOTIFY_TAKE_TRCFAILED, TASK, pxCurrentTCB, xTicksToWait); \
1718#elif (TRC_CFG_FREERTOS_VERSION < TRC_FREERTOS_VERSION_10_4_0)
1720#define traceTASK_NOTIFY_TAKE() \
1721 if (pxCurrentTCB->ucNotifyState == taskNOTIFICATION_RECEIVED){ \
1722 trcKERNEL_HOOKS_KERNEL_SERVICE_WITH_PARAM(TRACE_TASK_NOTIFY_TAKE, TASK, pxCurrentTCB, xTicksToWait); \
1724 trcKERNEL_HOOKS_KERNEL_SERVICE_WITH_PARAM(TRACE_TASK_NOTIFY_TAKE_TRCFAILED, TASK, pxCurrentTCB, xTicksToWait);}
1728#define traceTASK_NOTIFY_TAKE(index) \
1729 if (pxCurrentTCB->ucNotifyState[index] == taskNOTIFICATION_RECEIVED){ \
1730 trcKERNEL_HOOKS_KERNEL_SERVICE_WITH_PARAM(TRACE_TASK_NOTIFY_TAKE, TASK, pxCurrentTCB, xTicksToWait); \
1732 trcKERNEL_HOOKS_KERNEL_SERVICE_WITH_PARAM(TRACE_TASK_NOTIFY_TAKE_TRCFAILED, TASK, pxCurrentTCB, xTicksToWait);}
1736#undef traceTASK_NOTIFY_TAKE_BLOCK
1737#if (TRC_CFG_FREERTOS_VERSION < TRC_FREERTOS_VERSION_10_4_0)
1739#define traceTASK_NOTIFY_TAKE_BLOCK() \
1740 trcKERNEL_HOOKS_KERNEL_SERVICE_WITH_PARAM(TRACE_TASK_NOTIFY_TAKE_TRCBLOCK, TASK, pxCurrentTCB, xTicksToWait); \
1741 trcKERNEL_HOOKS_SET_TASK_INSTANCE_FINISHED();
1745#define traceTASK_NOTIFY_TAKE_BLOCK(index) \
1746 trcKERNEL_HOOKS_KERNEL_SERVICE_WITH_PARAM(TRACE_TASK_NOTIFY_TAKE_TRCBLOCK, TASK, pxCurrentTCB, xTicksToWait); \
1747 trcKERNEL_HOOKS_SET_TASK_INSTANCE_FINISHED();
1751#undef traceTASK_NOTIFY_WAIT
1752#if (TRC_CFG_FREERTOS_VERSION < TRC_FREERTOS_VERSION_9_0_0)
1754#define traceTASK_NOTIFY_WAIT() \
1755 if (TRACE_GET_OBJECT_FILTER(TASK, pxCurrentTCB) & CurrentFilterMask) \
1757 if (pxCurrentTCB->eNotifyState == eNotified) \
1758 prvTraceStoreKernelCallWithParam(TRACE_TASK_NOTIFY_WAIT, TRACE_CLASS_TASK, TRACE_GET_TASK_NUMBER(pxCurrentTCB), xTicksToWait); \
1760 prvTraceStoreKernelCallWithParam(TRACE_TASK_NOTIFY_WAIT_TRCFAILED, TRACE_CLASS_TASK, TRACE_GET_TASK_NUMBER(pxCurrentTCB), xTicksToWait); \
1763#elif (TRC_CFG_FREERTOS_VERSION < TRC_FREERTOS_VERSION_10_4_0)
1765#define traceTASK_NOTIFY_WAIT() \
1766 if (TRACE_GET_OBJECT_FILTER(TASK, pxCurrentTCB) & CurrentFilterMask) \
1768 if (pxCurrentTCB->ucNotifyState == taskNOTIFICATION_RECEIVED) \
1769 prvTraceStoreKernelCallWithParam(TRACE_TASK_NOTIFY_WAIT, TRACE_CLASS_TASK, TRACE_GET_TASK_NUMBER(pxCurrentTCB), xTicksToWait); \
1771 prvTraceStoreKernelCallWithParam(TRACE_TASK_NOTIFY_WAIT_TRCFAILED, TRACE_CLASS_TASK, TRACE_GET_TASK_NUMBER(pxCurrentTCB), xTicksToWait); \
1776#define traceTASK_NOTIFY_WAIT(index) \
1777 if (TRACE_GET_OBJECT_FILTER(TASK, pxCurrentTCB) & CurrentFilterMask) \
1779 if (pxCurrentTCB->ucNotifyState[index] == taskNOTIFICATION_RECEIVED) \
1780 prvTraceStoreKernelCallWithParam(TRACE_TASK_NOTIFY_WAIT, TRACE_CLASS_TASK, TRACE_GET_TASK_NUMBER(pxCurrentTCB), xTicksToWait); \
1782 prvTraceStoreKernelCallWithParam(TRACE_TASK_NOTIFY_WAIT_TRCFAILED, TRACE_CLASS_TASK, TRACE_GET_TASK_NUMBER(pxCurrentTCB), xTicksToWait); \
1787#undef traceTASK_NOTIFY_WAIT_BLOCK
1788#if (TRC_CFG_FREERTOS_VERSION < TRC_FREERTOS_VERSION_10_4_0)
1790#define traceTASK_NOTIFY_WAIT_BLOCK() \
1791 if (TRACE_GET_OBJECT_FILTER(TASK, pxCurrentTCB) & CurrentFilterMask) \
1792 prvTraceStoreKernelCallWithParam(TRACE_TASK_NOTIFY_WAIT_TRCBLOCK, TRACE_CLASS_TASK, TRACE_GET_TASK_NUMBER(pxCurrentTCB), xTicksToWait); \
1793 trcKERNEL_HOOKS_SET_TASK_INSTANCE_FINISHED();
1797#define traceTASK_NOTIFY_WAIT_BLOCK(index) \
1798 if (TRACE_GET_OBJECT_FILTER(TASK, pxCurrentTCB) & CurrentFilterMask) \
1799 prvTraceStoreKernelCallWithParam(TRACE_TASK_NOTIFY_WAIT_TRCBLOCK, TRACE_CLASS_TASK, TRACE_GET_TASK_NUMBER(pxCurrentTCB), xTicksToWait); \
1800 trcKERNEL_HOOKS_SET_TASK_INSTANCE_FINISHED();
1804#undef traceTASK_NOTIFY
1805#if (TRC_CFG_FREERTOS_VERSION < TRC_FREERTOS_VERSION_10_4_0)
1807#define traceTASK_NOTIFY() \
1808 if (TRACE_GET_OBJECT_FILTER(TASK, TRACE_GET_CURRENT_TASK()) & CurrentFilterMask) \
1809 if (TRACE_GET_OBJECT_FILTER(TASK, xTaskToNotify) & CurrentFilterMask) \
1810 prvTraceStoreKernelCall(TRACE_TASK_NOTIFY, TRACE_CLASS_TASK, TRACE_GET_TASK_NUMBER(xTaskToNotify));
1814#define traceTASK_NOTIFY(index) \
1815 if (TRACE_GET_OBJECT_FILTER(TASK, TRACE_GET_CURRENT_TASK()) & CurrentFilterMask) \
1816 if (TRACE_GET_OBJECT_FILTER(TASK, xTaskToNotify) & CurrentFilterMask) \
1817 prvTraceStoreKernelCall(TRACE_TASK_NOTIFY, TRACE_CLASS_TASK, TRACE_GET_TASK_NUMBER(xTaskToNotify));
1821#undef traceTASK_NOTIFY_FROM_ISR
1822#if (TRC_CFG_FREERTOS_VERSION < TRC_FREERTOS_VERSION_10_4_0)
1824#define traceTASK_NOTIFY_FROM_ISR() \
1825 if (TRACE_GET_OBJECT_FILTER(TASK, xTaskToNotify) & CurrentFilterMask) \
1826 prvTraceStoreKernelCall(TRACE_TASK_NOTIFY_FROM_ISR, TRACE_CLASS_TASK, TRACE_GET_TASK_NUMBER(xTaskToNotify));
1830#define traceTASK_NOTIFY_FROM_ISR(index) \
1831 if (TRACE_GET_OBJECT_FILTER(TASK, xTaskToNotify) & CurrentFilterMask) \
1832 prvTraceStoreKernelCall(TRACE_TASK_NOTIFY_FROM_ISR, TRACE_CLASS_TASK, TRACE_GET_TASK_NUMBER(xTaskToNotify));
1836#undef traceTASK_NOTIFY_GIVE_FROM_ISR
1837#if (TRC_CFG_FREERTOS_VERSION < TRC_FREERTOS_VERSION_10_4_0)
1839#define traceTASK_NOTIFY_GIVE_FROM_ISR() \
1840 if (TRACE_GET_OBJECT_FILTER(TASK, xTaskToNotify) & CurrentFilterMask) \
1841 prvTraceStoreKernelCall(TRACE_TASK_NOTIFY_GIVE_FROM_ISR, TRACE_CLASS_TASK, TRACE_GET_TASK_NUMBER(xTaskToNotify));
1845#define traceTASK_NOTIFY_GIVE_FROM_ISR(index) \
1846 if (TRACE_GET_OBJECT_FILTER(TASK, xTaskToNotify) & CurrentFilterMask) \
1847 prvTraceStoreKernelCall(TRACE_TASK_NOTIFY_GIVE_FROM_ISR, TRACE_CLASS_TASK, TRACE_GET_TASK_NUMBER(xTaskToNotify));
1851#if (TRC_CFG_INCLUDE_STREAM_BUFFER_EVENTS == 1)
1853#undef traceSTREAM_BUFFER_CREATE
1854#define traceSTREAM_BUFFER_CREATE( pxStreamBuffer, xIsMessageBuffer ) \
1855 trcKERNEL_HOOKS_OBJECT_CREATE(TRACE_GET_OBJECT_EVENT_CODE(CREATE_OBJ, TRCSUCCESS, STREAMBUFFER, pxStreamBuffer), STREAMBUFFER, pxStreamBuffer);
1857#undef traceSTREAM_BUFFER_CREATE_FAILED
1858#define traceSTREAM_BUFFER_CREATE_FAILED( xIsMessageBuffer ) \
1859 trcKERNEL_HOOKS_OBJECT_CREATE_FAILED(TRACE_GET_CLASS_EVENT_CODE(CREATE_OBJ, TRCFAILED, STREAMBUFFER, xIsMessageBuffer), TRACE_GET_CLASS_TRACE_CLASS(STREAMBUFFER, xIsMessageBuffer))
1861#undef traceSTREAM_BUFFER_CREATE_STATIC_FAILED
1862#define traceSTREAM_BUFFER_CREATE_STATIC_FAILED( xReturn, xIsMessageBuffer ) \
1863 traceSTREAM_BUFFER_CREATE_FAILED( xIsMessageBuffer )
1865#undef traceSTREAM_BUFFER_DELETE
1866#define traceSTREAM_BUFFER_DELETE( xStreamBuffer ) \
1867 trcKERNEL_HOOKS_OBJECT_DELETE(TRACE_GET_OBJECT_EVENT_CODE(DELETE_OBJ, TRCSUCCESS, STREAMBUFFER, xStreamBuffer), TRACE_GET_OBJECT_EVENT_CODE(OBJCLOSE_NAME, TRCSUCCESS, STREAMBUFFER, xStreamBuffer), TRACE_GET_OBJECT_EVENT_CODE(OBJCLOSE_PROP, TRCSUCCESS, STREAMBUFFER, xStreamBuffer), STREAMBUFFER, xStreamBuffer);
1869#undef traceSTREAM_BUFFER_RESET
1870#define traceSTREAM_BUFFER_RESET( xStreamBuffer ) \
1871 trcKERNEL_HOOKS_KERNEL_SERVICE(prvGetStreamBufferType(xStreamBuffer) > 0 ? TRACE_MESSAGEBUFFER_RESET : TRACE_STREAMBUFFER_RESET, STREAMBUFFER, xStreamBuffer); \
1872 trcKERNEL_HOOKS_SET_OBJECT_STATE(STREAMBUFFER, xStreamBuffer, 0);
1874#undef traceSTREAM_BUFFER_SEND
1875#define traceSTREAM_BUFFER_SEND( xStreamBuffer, xReturn ) \
1876 trcKERNEL_HOOKS_KERNEL_SERVICE(TRACE_GET_OBJECT_EVENT_CODE(SEND, TRCSUCCESS, STREAMBUFFER, xStreamBuffer), STREAMBUFFER, xStreamBuffer); \
1877 trcKERNEL_HOOKS_SET_OBJECT_STATE(STREAMBUFFER, xStreamBuffer, prvBytesInBuffer(xStreamBuffer));
1879#undef traceBLOCKING_ON_STREAM_BUFFER_SEND
1880#define traceBLOCKING_ON_STREAM_BUFFER_SEND( xStreamBuffer ) \
1881 trcKERNEL_HOOKS_KERNEL_SERVICE(TRACE_GET_OBJECT_EVENT_CODE(SEND, TRCBLOCK, STREAMBUFFER, xStreamBuffer), STREAMBUFFER, xStreamBuffer);
1883#undef traceSTREAM_BUFFER_SEND_FAILED
1884#define traceSTREAM_BUFFER_SEND_FAILED( xStreamBuffer ) \
1885 trcKERNEL_HOOKS_KERNEL_SERVICE(TRACE_GET_OBJECT_EVENT_CODE(SEND, TRCFAILED, STREAMBUFFER, xStreamBuffer), STREAMBUFFER, xStreamBuffer);
1887#undef traceSTREAM_BUFFER_RECEIVE
1888#define traceSTREAM_BUFFER_RECEIVE( xStreamBuffer, xReceivedLength ) \
1889 trcKERNEL_HOOKS_KERNEL_SERVICE(TRACE_GET_OBJECT_EVENT_CODE(RECEIVE, TRCSUCCESS, STREAMBUFFER, xStreamBuffer), STREAMBUFFER, xStreamBuffer); \
1890 trcKERNEL_HOOKS_SET_OBJECT_STATE(STREAMBUFFER, xStreamBuffer, prvBytesInBuffer(xStreamBuffer));
1893#undef traceBLOCKING_ON_STREAM_BUFFER_RECEIVE
1894#define traceBLOCKING_ON_STREAM_BUFFER_RECEIVE( xStreamBuffer ) \
1895 trcKERNEL_HOOKS_KERNEL_SERVICE(TRACE_GET_OBJECT_EVENT_CODE(RECEIVE, TRCBLOCK, STREAMBUFFER, xStreamBuffer), STREAMBUFFER, xStreamBuffer);
1897#undef traceSTREAM_BUFFER_RECEIVE_FAILED
1898#define traceSTREAM_BUFFER_RECEIVE_FAILED( xStreamBuffer ) \
1899 trcKERNEL_HOOKS_KERNEL_SERVICE(TRACE_GET_OBJECT_EVENT_CODE(RECEIVE, TRCFAILED, STREAMBUFFER, xStreamBuffer), STREAMBUFFER, xStreamBuffer);
1901#undef traceSTREAM_BUFFER_SEND_FROM_ISR
1902#define traceSTREAM_BUFFER_SEND_FROM_ISR( xStreamBuffer, xReturn ) \
1903 if( xReturn > ( size_t ) 0 ) \
1905 trcKERNEL_HOOKS_KERNEL_SERVICE_FROM_ISR(TRACE_GET_OBJECT_EVENT_CODE(SEND_FROM_ISR, TRCSUCCESS, STREAMBUFFER, xStreamBuffer), STREAMBUFFER, xStreamBuffer); \
1906 trcKERNEL_HOOKS_SET_OBJECT_STATE(STREAMBUFFER, xStreamBuffer, prvBytesInBuffer(xStreamBuffer)); \
1910 trcKERNEL_HOOKS_KERNEL_SERVICE_FROM_ISR(TRACE_GET_OBJECT_EVENT_CODE(SEND_FROM_ISR, TRCFAILED, STREAMBUFFER, xStreamBuffer), STREAMBUFFER, xStreamBuffer); \
1913#undef traceSTREAM_BUFFER_RECEIVE_FROM_ISR
1914#define traceSTREAM_BUFFER_RECEIVE_FROM_ISR( xStreamBuffer, xReceivedLength ) \
1915 if( xReceivedLength > ( size_t ) 0 ) \
1917 trcKERNEL_HOOKS_KERNEL_SERVICE_FROM_ISR(TRACE_GET_OBJECT_EVENT_CODE(RECEIVE_FROM_ISR, TRCSUCCESS, STREAMBUFFER, xStreamBuffer), STREAMBUFFER, xStreamBuffer); \
1918 trcKERNEL_HOOKS_SET_OBJECT_STATE(STREAMBUFFER, xStreamBuffer, prvBytesInBuffer(xStreamBuffer)); \
1922 trcKERNEL_HOOKS_KERNEL_SERVICE_FROM_ISR(TRACE_GET_OBJECT_EVENT_CODE(RECEIVE_FROM_ISR, TRCFAILED, STREAMBUFFER, xStreamBuffer), STREAMBUFFER, xStreamBuffer); \
1931#if (TRC_CFG_RECORDER_MODE == TRC_RECORDER_MODE_STREAMING)
1933TraceHeapHandle_t xTraceKernelPortGetSystemHeapHandle(
void);
1944#define PSF_EVENT_NULL_EVENT 0x00
1946#define PSF_EVENT_TRACE_START 0x01
1947#define PSF_EVENT_TS_CONFIG 0x02
1948#define PSF_EVENT_OBJ_NAME 0x03
1949#define PSF_EVENT_TASK_PRIORITY 0x04
1950#define PSF_EVENT_TASK_PRIO_INHERIT 0x05
1951#define PSF_EVENT_TASK_PRIO_DISINHERIT 0x06
1952#define PSF_EVENT_DEFINE_ISR 0x07
1954#define PSF_EVENT_TASK_CREATE 0x10
1955#define PSF_EVENT_QUEUE_CREATE 0x11
1956#define PSF_EVENT_SEMAPHORE_BINARY_CREATE 0x12
1957#define PSF_EVENT_MUTEX_CREATE 0x13
1958#define PSF_EVENT_TIMER_CREATE 0x14
1959#define PSF_EVENT_EVENTGROUP_CREATE 0x15
1960#define PSF_EVENT_SEMAPHORE_COUNTING_CREATE 0x16
1961#define PSF_EVENT_MUTEX_RECURSIVE_CREATE 0x17
1962#define PSF_EVENT_STREAMBUFFER_CREATE 0x18
1963#define PSF_EVENT_MESSAGEBUFFER_CREATE 0x19
1965#define PSF_EVENT_TASK_DELETE 0x20
1966#define PSF_EVENT_QUEUE_DELETE 0x21
1967#define PSF_EVENT_SEMAPHORE_DELETE 0x22
1968#define PSF_EVENT_MUTEX_DELETE 0x23
1969#define PSF_EVENT_TIMER_DELETE 0x24
1970#define PSF_EVENT_EVENTGROUP_DELETE 0x25
1971#define PSF_EVENT_STREAMBUFFER_DELETE 0x28
1972#define PSF_EVENT_MESSAGEBUFFER_DELETE 0x29
1974#define PSF_EVENT_TASK_READY 0x30
1975#define PSF_EVENT_NEW_TIME 0x31
1976#define PSF_EVENT_NEW_TIME_SCHEDULER_SUSPENDED 0x32
1977#define PSF_EVENT_ISR_BEGIN 0x33
1978#define PSF_EVENT_ISR_RESUME 0x34
1979#define PSF_EVENT_TS_BEGIN 0x35
1980#define PSF_EVENT_TS_RESUME 0x36
1981#define PSF_EVENT_TASK_ACTIVATE 0x37
1983#define PSF_EVENT_MALLOC 0x38
1984#define PSF_EVENT_FREE 0x39
1986#define PSF_EVENT_LOWPOWER_BEGIN 0x3A
1987#define PSF_EVENT_LOWPOWER_END 0x3B
1989#define PSF_EVENT_IFE_NEXT 0x3C
1990#define PSF_EVENT_IFE_DIRECT 0x3D
1992#define PSF_EVENT_TASK_CREATE_FAILED 0x40
1993#define PSF_EVENT_QUEUE_CREATE_FAILED 0x41
1994#define PSF_EVENT_SEMAPHORE_BINARY_CREATE_FAILED 0x42
1995#define PSF_EVENT_MUTEX_CREATE_FAILED 0x43
1996#define PSF_EVENT_TIMER_CREATE_FAILED 0x44
1997#define PSF_EVENT_EVENTGROUP_CREATE_FAILED 0x45
1998#define PSF_EVENT_SEMAPHORE_COUNTING_CREATE_FAILED 0x46
1999#define PSF_EVENT_MUTEX_RECURSIVE_CREATE_FAILED 0x47
2000#define PSF_EVENT_STREAMBUFFER_CREATE_FAILED 0x49
2001#define PSF_EVENT_MESSAGEBUFFER_CREATE_FAILED 0x4A
2003#define PSF_EVENT_TIMER_DELETE_FAILED 0x48
2005#define PSF_EVENT_QUEUE_SEND 0x50
2006#define PSF_EVENT_SEMAPHORE_GIVE 0x51
2007#define PSF_EVENT_MUTEX_GIVE 0x52
2009#define PSF_EVENT_QUEUE_SEND_FAILED 0x53
2010#define PSF_EVENT_SEMAPHORE_GIVE_FAILED 0x54
2011#define PSF_EVENT_MUTEX_GIVE_FAILED 0x55
2013#define PSF_EVENT_QUEUE_SEND_BLOCK 0x56
2014#define PSF_EVENT_SEMAPHORE_GIVE_BLOCK 0x57
2015#define PSF_EVENT_MUTEX_GIVE_BLOCK 0x58
2017#define PSF_EVENT_QUEUE_SEND_FROMISR 0x59
2018#define PSF_EVENT_SEMAPHORE_GIVE_FROMISR 0x5A
2020#define PSF_EVENT_QUEUE_SEND_FROMISR_FAILED 0x5C
2021#define PSF_EVENT_SEMAPHORE_GIVE_FROMISR_FAILED 0x5D
2023#define PSF_EVENT_QUEUE_RECEIVE 0x60
2024#define PSF_EVENT_SEMAPHORE_TAKE 0x61
2025#define PSF_EVENT_MUTEX_TAKE 0x62
2027#define PSF_EVENT_QUEUE_RECEIVE_FAILED 0x63
2028#define PSF_EVENT_SEMAPHORE_TAKE_FAILED 0x64
2029#define PSF_EVENT_MUTEX_TAKE_FAILED 0x65
2031#define PSF_EVENT_QUEUE_RECEIVE_BLOCK 0x66
2032#define PSF_EVENT_SEMAPHORE_TAKE_BLOCK 0x67
2033#define PSF_EVENT_MUTEX_TAKE_BLOCK 0x68
2035#define PSF_EVENT_QUEUE_RECEIVE_FROMISR 0x69
2036#define PSF_EVENT_SEMAPHORE_TAKE_FROMISR 0x6A
2038#define PSF_EVENT_QUEUE_RECEIVE_FROMISR_FAILED 0x6C
2039#define PSF_EVENT_SEMAPHORE_TAKE_FROMISR_FAILED 0x6D
2041#define PSF_EVENT_QUEUE_PEEK 0x70
2042#define PSF_EVENT_SEMAPHORE_PEEK 0x71
2043#define PSF_EVENT_MUTEX_PEEK 0x72
2045#define PSF_EVENT_QUEUE_PEEK_FAILED 0x73
2046#define PSF_EVENT_SEMAPHORE_PEEK_FAILED 0x74
2047#define PSF_EVENT_MUTEX_PEEK_FAILED 0x75
2049#define PSF_EVENT_QUEUE_PEEK_BLOCK 0x76
2050#define PSF_EVENT_SEMAPHORE_PEEK_BLOCK 0x77
2051#define PSF_EVENT_MUTEX_PEEK_BLOCK 0x78
2053#define PSF_EVENT_TASK_DELAY_UNTIL 0x79
2054#define PSF_EVENT_TASK_DELAY 0x7A
2055#define PSF_EVENT_TASK_SUSPEND 0x7B
2056#define PSF_EVENT_TASK_RESUME 0x7C
2057#define PSF_EVENT_TASK_RESUME_FROMISR 0x7D
2059#define PSF_EVENT_TIMER_PENDFUNCCALL 0x80
2060#define PSF_EVENT_TIMER_PENDFUNCCALL_FROMISR 0x81
2061#define PSF_EVENT_TIMER_PENDFUNCCALL_FAILED 0x82
2062#define PSF_EVENT_TIMER_PENDFUNCCALL_FROMISR_FAILED 0x83
2065#define PSF_EVENT_USER_EVENT 0x90
2068#define PSF_EVENT_USER_EVENT_FIXED 0x98
2070#define PSF_EVENT_TIMER_START 0xA0
2071#define PSF_EVENT_TIMER_RESET 0xA1
2072#define PSF_EVENT_TIMER_STOP 0xA2
2073#define PSF_EVENT_TIMER_CHANGEPERIOD 0xA3
2074#define PSF_EVENT_TIMER_START_FROMISR 0xA4
2075#define PSF_EVENT_TIMER_RESET_FROMISR 0xA5
2076#define PSF_EVENT_TIMER_STOP_FROMISR 0xA6
2077#define PSF_EVENT_TIMER_CHANGEPERIOD_FROMISR 0xA7
2078#define PSF_EVENT_TIMER_START_FAILED 0xA8
2079#define PSF_EVENT_TIMER_RESET_FAILED 0xA9
2080#define PSF_EVENT_TIMER_STOP_FAILED 0xAA
2081#define PSF_EVENT_TIMER_CHANGEPERIOD_FAILED 0xAB
2082#define PSF_EVENT_TIMER_START_FROMISR_FAILED 0xAC
2083#define PSF_EVENT_TIMER_RESET_FROMISR_FAILED 0xAD
2084#define PSF_EVENT_TIMER_STOP_FROMISR_FAILED 0xAE
2085#define PSF_EVENT_TIMER_CHANGEPERIOD_FROMISR_FAILED 0xAF
2087#define PSF_EVENT_EVENTGROUP_SYNC 0xB0
2088#define PSF_EVENT_EVENTGROUP_WAITBITS 0xB1
2089#define PSF_EVENT_EVENTGROUP_CLEARBITS 0xB2
2090#define PSF_EVENT_EVENTGROUP_CLEARBITS_FROMISR 0xB3
2091#define PSF_EVENT_EVENTGROUP_SETBITS 0xB4
2092#define PSF_EVENT_EVENTGROUP_SETBITS_FROMISR 0xB5
2093#define PSF_EVENT_EVENTGROUP_SYNC_BLOCK 0xB6
2094#define PSF_EVENT_EVENTGROUP_WAITBITS_BLOCK 0xB7
2095#define PSF_EVENT_EVENTGROUP_SYNC_FAILED 0xB8
2096#define PSF_EVENT_EVENTGROUP_WAITBITS_FAILED 0xB9
2098#define PSF_EVENT_QUEUE_SEND_FRONT 0xC0
2099#define PSF_EVENT_QUEUE_SEND_FRONT_FAILED 0xC1
2100#define PSF_EVENT_QUEUE_SEND_FRONT_BLOCK 0xC2
2101#define PSF_EVENT_QUEUE_SEND_FRONT_FROMISR 0xC3
2102#define PSF_EVENT_QUEUE_SEND_FRONT_FROMISR_FAILED 0xC4
2103#define PSF_EVENT_MUTEX_GIVE_RECURSIVE 0xC5
2104#define PSF_EVENT_MUTEX_GIVE_RECURSIVE_FAILED 0xC6
2105#define PSF_EVENT_MUTEX_TAKE_RECURSIVE 0xC7
2106#define PSF_EVENT_MUTEX_TAKE_RECURSIVE_FAILED 0xC8
2108#define PSF_EVENT_TASK_NOTIFY 0xC9
2109#define PSF_EVENT_TASK_NOTIFY_WAIT 0xCA
2110#define PSF_EVENT_TASK_NOTIFY_WAIT_BLOCK 0xCB
2111#define PSF_EVENT_TASK_NOTIFY_WAIT_FAILED 0xCC
2112#define PSF_EVENT_TASK_NOTIFY_FROM_ISR 0xCD
2114#define PSF_EVENT_TIMER_EXPIRED 0xD2
2116#define PSF_EVENT_STREAMBUFFER_SEND 0xD3
2117#define PSF_EVENT_STREAMBUFFER_SEND_BLOCK 0xD4
2118#define PSF_EVENT_STREAMBUFFER_SEND_FAILED 0xD5
2119#define PSF_EVENT_STREAMBUFFER_RECEIVE 0xD6
2120#define PSF_EVENT_STREAMBUFFER_RECEIVE_BLOCK 0xD7
2121#define PSF_EVENT_STREAMBUFFER_RECEIVE_FAILED 0xD8
2122#define PSF_EVENT_STREAMBUFFER_SEND_FROM_ISR 0xD9
2123#define PSF_EVENT_STREAMBUFFER_SEND_FROM_ISR_FAILED 0xDA
2124#define PSF_EVENT_STREAMBUFFER_RECEIVE_FROM_ISR 0xDB
2125#define PSF_EVENT_STREAMBUFFER_RECEIVE_FROM_ISR_FAILED 0xDC
2126#define PSF_EVENT_STREAMBUFFER_RESET 0xDD
2128#define PSF_EVENT_MESSAGEBUFFER_SEND 0xDE
2129#define PSF_EVENT_MESSAGEBUFFER_SEND_BLOCK 0xDF
2130#define PSF_EVENT_MESSAGEBUFFER_SEND_FAILED 0xE0
2131#define PSF_EVENT_MESSAGEBUFFER_RECEIVE 0xE1
2132#define PSF_EVENT_MESSAGEBUFFER_RECEIVE_BLOCK 0xE2
2133#define PSF_EVENT_MESSAGEBUFFER_RECEIVE_FAILED 0xE3
2134#define PSF_EVENT_MESSAGEBUFFER_SEND_FROM_ISR 0xE4
2135#define PSF_EVENT_MESSAGEBUFFER_SEND_FROM_ISR_FAILED 0xE5
2136#define PSF_EVENT_MESSAGEBUFFER_RECEIVE_FROM_ISR 0xE6
2137#define PSF_EVENT_MESSAGEBUFFER_RECEIVE_FROM_ISR_FAILED 0xE7
2138#define PSF_EVENT_MESSAGEBUFFER_RESET 0xE8
2140#define PSF_EVENT_MALLOC_FAILED 0xE9
2141#define PSF_EVENT_FREE_FAILED 0xEA
2143#define PSF_EVENT_UNUSED_STACK 0xEB
2145#define PSF_EVENT_STATEMACHINE_STATE_CREATE 0xEC
2146#define PSF_EVENT_STATEMACHINE_CREATE 0xED
2147#define PSF_EVENT_STATEMACHINE_STATECHANGE 0xEE
2149#define PSF_EVENT_INTERVAL_CHANNEL_CREATE 0xEF
2150#define PSF_EVENT_INTERVAL_START 0xF0
2152#define PSF_EVENT_EXTENSION_CREATE 0xF1
2154#define PSF_EVENT_HEAP_CREATE 0xF2
2156#define PSF_EVENT_COUNTER_CREATE 0xF3
2157#define PSF_EVENT_COUNTER_CHANGE 0xF4
2158#define PSF_EVENT_COUNTER_LIMIT_EXCEEDED 0xF5
2160#define PSF_EVENT_MUTEX_TAKE_RECURSIVE_BLOCK 0xF6
2162#define PSF_EVENT_INTERVAL_STOP 0xF7
2163#define PSF_EVENT_INTERVAL_CHANNEL_SET_CREATE 0xF8
2165#define PSF_EVENT_RUNNABLE_REGISTER 0xF9
2166#define PSF_EVENT_RUNNABLE_START 0xFA
2167#define PSF_EVENT_RUNNABLE_STOP 0xFB
2169#define PSF_EVENT_DEPENDENCY_REGISTER 0xFC
2171#define TRC_EVENT_LAST_ID (PSF_EVENT_DEPENDENCY_REGISTER)
2176#undef traceINCREASE_TICK_COUNT
2178#define traceINCREASE_TICK_COUNT( xCount ) { uint32_t uiTraceTickCount; xTraceTimestampGetOsTickCount(&uiTraceTickCount); xTraceTimestampSetOsTickCount(uiTraceTickCount + (xCount)); }
2180#if (TRC_CFG_INCLUDE_OSTICK_EVENTS == 1)
2182#define OS_TICK_EVENT(uxSchedulerSuspended, xTickCount) if ((uxSchedulerSuspended) == (unsigned portBASE_TYPE) pdFALSE) { prvTraceStoreEvent_Param(PSF_EVENT_NEW_TIME, xTickCount); }
2186#define OS_TICK_EVENT(uxSchedulerSuspended, xTickCount)
2191#undef traceTASK_INCREMENT_TICK
2192#if TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_10_3_0
2194#define traceTASK_INCREMENT_TICK( xTickCount ) \
2195 if (uxSchedulerSuspended == ( unsigned portBASE_TYPE ) pdTRUE || xPendedTicks == 0) { xTraceTimestampSetOsTickCount((xTickCount) + 1); } \
2196 OS_TICK_EVENT(uxSchedulerSuspended, (xTickCount) + 1)
2198#elif TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_7_5_X
2200#define traceTASK_INCREMENT_TICK( xTickCount ) \
2201 if (uxSchedulerSuspended == ( unsigned portBASE_TYPE ) pdTRUE || uxPendedTicks == 0) { xTraceTimestampSetOsTickCount((xTickCount) + 1); } \
2202 OS_TICK_EVENT(uxSchedulerSuspended, (xTickCount) + 1)
2206#define traceTASK_INCREMENT_TICK( xTickCount ) \
2207 if (uxSchedulerSuspended == ( unsigned portBASE_TYPE ) pdTRUE || uxMissedTicks == 0) { xTraceTimestampSetOsTickCount((xTickCount) + 1); } \
2208 OS_TICK_EVENT(uxSchedulerSuspended, (xTickCount) + 1)
2213#undef traceTASK_SWITCHED_IN
2214#define traceTASK_SWITCHED_IN() \
2215 xTraceTaskSwitch(pxCurrentTCB, pxCurrentTCB->uxPriority)
2218#undef traceMOVED_TASK_TO_READY_STATE
2219#define traceMOVED_TASK_TO_READY_STATE( pxTCB ) \
2220 xTraceTaskReady(pxTCB);
2222#undef traceTASK_CREATE
2223#if TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_9_0_0
2225#define traceTASK_CREATE(pxNewTCB) \
2226 if ((pxNewTCB) != 0) \
2228 xTraceTaskRegisterWithoutHandle((void*)(pxNewTCB), (pxNewTCB)->pcTaskName, (pxNewTCB)->uxPriority); \
2233#define traceTASK_CREATE(pxNewTCB) \
2234 if (pxNewTCB != 0) \
2236 xTraceTaskRegisterWithoutHandle((void*)pxNewTCB, (const char*)pcName, (uint32_t)uxPriority); \
2242#undef traceTASK_CREATE_FAILED
2243#define traceTASK_CREATE_FAILED() \
2244 prvTraceStoreEvent_None(PSF_EVENT_TASK_CREATE_FAILED)
2247#undef traceTASK_DELETE
2248#define traceTASK_DELETE( pxTaskToDelete ) \
2249 xTraceTaskUnregisterWithoutHandle(pxTaskToDelete, (pxTaskToDelete)->uxPriority)
2251#if (TRC_CFG_SCHEDULING_ONLY == 0)
2253#if (defined(configUSE_TICKLESS_IDLE) && configUSE_TICKLESS_IDLE != 0)
2255#undef traceLOW_POWER_IDLE_BEGIN
2256#define traceLOW_POWER_IDLE_BEGIN() \
2257 prvTraceStoreEvent_Param(PSF_EVENT_LOWPOWER_BEGIN, xExpectedIdleTime)
2259#undef traceLOW_POWER_IDLE_END
2260#define traceLOW_POWER_IDLE_END() \
2261 prvTraceStoreEvent_None(PSF_EVENT_LOWPOWER_END)
2266#undef traceTASK_SUSPEND
2267#define traceTASK_SUSPEND( pxTaskToSuspend ) \
2268 prvTraceStoreEvent_Handle(PSF_EVENT_TASK_SUSPEND, pxTaskToSuspend)
2271#undef traceTASK_DELAY
2272#define traceTASK_DELAY() \
2273 prvTraceStoreEvent_Param(PSF_EVENT_TASK_DELAY, xTicksToDelay)
2276#undef traceTASK_DELAY_UNTIL
2277#if TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_9_0_0
2279#define traceTASK_DELAY_UNTIL(xTimeToWake) \
2280 prvTraceStoreEvent_Param(PSF_EVENT_TASK_DELAY_UNTIL, (xTimeToWake))
2284#define traceTASK_DELAY_UNTIL() \
2285 prvTraceStoreEvent_Param(PSF_EVENT_TASK_DELAY_UNTIL, xTimeToWake)
2289#if (TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_9_0_0)
2291#define traceQUEUE_CREATE_HELPER() \
2292 case queueQUEUE_TYPE_MUTEX: \
2293 xTraceObjectRegisterWithoutHandle(PSF_EVENT_MUTEX_CREATE, (void*)pxNewQueue, "", 0); \
2295 case queueQUEUE_TYPE_RECURSIVE_MUTEX: \
2296 xTraceObjectRegisterWithoutHandle(PSF_EVENT_MUTEX_RECURSIVE_CREATE, (void*)pxNewQueue, "", 0); \
2301#define traceQUEUE_CREATE_HELPER()
2306#undef traceQUEUE_CREATE
2307#define traceQUEUE_CREATE( pxNewQueue )\
2308 switch ((pxNewQueue)->ucQueueType) \
2310 case queueQUEUE_TYPE_BASE: \
2311 xTraceObjectRegisterWithoutHandle(PSF_EVENT_QUEUE_CREATE, (void*)(pxNewQueue), "", (uint32_t)uxQueueLength); \
2313 case queueQUEUE_TYPE_BINARY_SEMAPHORE: \
2314 xTraceObjectRegisterWithoutHandle(PSF_EVENT_SEMAPHORE_BINARY_CREATE, (void*)(pxNewQueue), "", 0); \
2316 traceQUEUE_CREATE_HELPER() \
2319#if (TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_9_0_0)
2321#define traceQUEUE_CREATE_FAILED_HELPER() \
2322 case queueQUEUE_TYPE_MUTEX: \
2323 prvTraceStoreEvent_HandleParam(PSF_EVENT_MUTEX_CREATE_FAILED, 0, 0); \
2325 case queueQUEUE_TYPE_RECURSIVE_MUTEX: \
2326 prvTraceStoreEvent_HandleParam(PSF_EVENT_MUTEX_RECURSIVE_CREATE_FAILED, 0, 0); \
2331#define traceQUEUE_CREATE_FAILED_HELPER()
2336#undef traceQUEUE_CREATE_FAILED
2337#define traceQUEUE_CREATE_FAILED( queueType ) \
2338 switch (queueType) \
2340 case queueQUEUE_TYPE_BASE: \
2341 prvTraceStoreEvent_HandleParam(PSF_EVENT_QUEUE_CREATE_FAILED, 0, uxQueueLength); \
2343 case queueQUEUE_TYPE_BINARY_SEMAPHORE: \
2344 prvTraceStoreEvent_HandleParam(PSF_EVENT_SEMAPHORE_BINARY_CREATE_FAILED, 0, 0); \
2346 traceQUEUE_CREATE_FAILED_HELPER() \
2349#undef traceQUEUE_DELETE
2350#define traceQUEUE_DELETE( pxQueue ) \
2351 switch ((pxQueue)->ucQueueType) \
2353 case queueQUEUE_TYPE_BASE: \
2354 xTraceObjectUnregisterWithoutHandle(PSF_EVENT_QUEUE_DELETE, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting); \
2356 case queueQUEUE_TYPE_MUTEX: \
2357 case queueQUEUE_TYPE_RECURSIVE_MUTEX: \
2358 xTraceObjectUnregisterWithoutHandle(PSF_EVENT_MUTEX_DELETE, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting); \
2360 case queueQUEUE_TYPE_COUNTING_SEMAPHORE: \
2361 case queueQUEUE_TYPE_BINARY_SEMAPHORE: \
2362 xTraceObjectUnregisterWithoutHandle(PSF_EVENT_SEMAPHORE_DELETE, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting); \
2367#undef traceCREATE_COUNTING_SEMAPHORE
2368#if (TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_8_X_X)
2370#define traceCREATE_COUNTING_SEMAPHORE() \
2371 xTraceObjectRegisterWithoutHandle(PSF_EVENT_SEMAPHORE_COUNTING_CREATE, (void*)xHandle, "", (uint32_t)uxMaxCount)
2373#elif (TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_7_5_X)
2375#define traceCREATE_COUNTING_SEMAPHORE() \
2376 xTraceObjectRegisterWithoutHandle(PSF_EVENT_SEMAPHORE_COUNTING_CREATE, (void*)xHandle, "", uxInitialCount)
2378#elif (TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_7_4_X)
2380#define traceCREATE_COUNTING_SEMAPHORE() \
2381 xTraceObjectRegisterWithoutHandle(PSF_EVENT_SEMAPHORE_COUNTING_CREATE, (void*)xHandle, "", uxCountValue)
2385#define traceCREATE_COUNTING_SEMAPHORE() \
2386 xTraceObjectRegisterWithoutHandle(PSF_EVENT_SEMAPHORE_COUNTING_CREATE, (void*)pxHandle, "", uxCountValue)
2390#undef traceCREATE_COUNTING_SEMAPHORE_FAILED
2391#if (TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_8_X_X)
2393#define traceCREATE_COUNTING_SEMAPHORE_FAILED() \
2394 prvTraceStoreEvent_HandleParam(PSF_EVENT_SEMAPHORE_COUNTING_CREATE_FAILED, 0, uxMaxCount)
2396#elif (TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_7_5_X)
2398#define traceCREATE_COUNTING_SEMAPHORE_FAILED() \
2399 prvTraceStoreEvent_HandleParam(PSF_EVENT_SEMAPHORE_COUNTING_CREATE_FAILED, 0, uxInitialCount)
2401#elif (TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_7_4_X)
2403#define traceCREATE_COUNTING_SEMAPHORE_FAILED() \
2404 prvTraceStoreEvent_HandleParam(PSF_EVENT_SEMAPHORE_COUNTING_CREATE_FAILED, 0, uxCountValue)
2408#define traceCREATE_COUNTING_SEMAPHORE_FAILED() \
2409 prvTraceStoreEvent_HandleParam(PSF_EVENT_SEMAPHORE_COUNTING_CREATE_FAILED, 0, uxCountValue)
2415#if (TRC_CFG_FREERTOS_VERSION < TRC_FREERTOS_VERSION_9_0_0)
2418#undef traceCREATE_MUTEX
2419#define traceCREATE_MUTEX( pxNewQueue ) \
2420 switch (pxNewQueue->ucQueueType) \
2422 case queueQUEUE_TYPE_MUTEX: \
2423 xTraceObjectRegisterWithoutHandle(PSF_EVENT_MUTEX_CREATE, (void*)(pxNewQueue), "", 0); \
2425 case queueQUEUE_TYPE_RECURSIVE_MUTEX: \
2426 xTraceObjectRegisterWithoutHandle(PSF_EVENT_MUTEX_RECURSIVE_CREATE, (void*)(pxNewQueue), "", 0); \
2431#undef traceCREATE_MUTEX_FAILED
2432#define traceCREATE_MUTEX_FAILED() \
2433 prvTraceStoreEvent_HandleParam(PSF_EVENT_MUTEX_CREATE_FAILED, 0, 0)
2437#undef traceGIVE_MUTEX_RECURSIVE_FAILED
2438#define traceGIVE_MUTEX_RECURSIVE_FAILED( pxMutex ) \
2439 prvTraceStoreEvent_Handle(PSF_EVENT_MUTEX_GIVE_RECURSIVE_FAILED, (void*)(pxMutex))
2442#undef traceQUEUE_SEND
2443#define traceQUEUE_SEND( pxQueue ) \
2444 switch ((pxQueue)->ucQueueType) \
2446 case queueQUEUE_TYPE_BASE: \
2447 prvTraceStoreEvent_HandleParam(xCopyPosition == queueSEND_TO_BACK ? PSF_EVENT_QUEUE_SEND : PSF_EVENT_QUEUE_SEND_FRONT, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting + 1); \
2449 case queueQUEUE_TYPE_BINARY_SEMAPHORE: \
2450 case queueQUEUE_TYPE_COUNTING_SEMAPHORE: \
2451 prvTraceStoreEvent_HandleParam(PSF_EVENT_SEMAPHORE_GIVE, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting + 1); \
2453 case queueQUEUE_TYPE_MUTEX: \
2454 prvTraceStoreEvent_Handle(PSF_EVENT_MUTEX_GIVE, (void*)(pxQueue)); \
2456 case queueQUEUE_TYPE_RECURSIVE_MUTEX: \
2457 prvTraceStoreEvent_Handle(PSF_EVENT_MUTEX_GIVE_RECURSIVE, (void*)(pxQueue)); \
2461#undef traceQUEUE_SET_SEND
2462#define traceQUEUE_SET_SEND( pxQueue ) \
2463 prvTraceStoreEvent_HandleParam(PSF_EVENT_QUEUE_SEND, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting + 1)
2466#undef traceQUEUE_SEND_FAILED
2467#define traceQUEUE_SEND_FAILED( pxQueue ) \
2468 switch ((pxQueue)->ucQueueType) \
2470 case queueQUEUE_TYPE_BASE: \
2471 prvTraceStoreEvent_HandleParam(xCopyPosition == queueSEND_TO_BACK ? PSF_EVENT_QUEUE_SEND_FAILED : PSF_EVENT_QUEUE_SEND_FRONT_FAILED, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting); \
2473 case queueQUEUE_TYPE_BINARY_SEMAPHORE: \
2474 case queueQUEUE_TYPE_COUNTING_SEMAPHORE: \
2475 prvTraceStoreEvent_HandleParam(PSF_EVENT_SEMAPHORE_GIVE_FAILED, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting); \
2477 case queueQUEUE_TYPE_MUTEX: \
2478 case queueQUEUE_TYPE_RECURSIVE_MUTEX: \
2479 prvTraceStoreEvent_Handle(PSF_EVENT_MUTEX_GIVE_FAILED, (void*)(pxQueue)); \
2484#undef traceBLOCKING_ON_QUEUE_SEND
2485#define traceBLOCKING_ON_QUEUE_SEND( pxQueue ) \
2486 switch ((pxQueue)->ucQueueType) \
2488 case queueQUEUE_TYPE_BASE: \
2489 prvTraceStoreEvent_HandleParam(xCopyPosition == queueSEND_TO_BACK ? PSF_EVENT_QUEUE_SEND_BLOCK : PSF_EVENT_QUEUE_SEND_FRONT_BLOCK, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting); \
2491 case queueQUEUE_TYPE_BINARY_SEMAPHORE: \
2492 case queueQUEUE_TYPE_COUNTING_SEMAPHORE: \
2493 prvTraceStoreEvent_HandleParam(PSF_EVENT_SEMAPHORE_GIVE_BLOCK, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting); \
2495 case queueQUEUE_TYPE_MUTEX: \
2496 case queueQUEUE_TYPE_RECURSIVE_MUTEX: \
2497 prvTraceStoreEvent_Handle(PSF_EVENT_MUTEX_GIVE_BLOCK, (void*)(pxQueue)); \
2502#undef traceQUEUE_SEND_FROM_ISR
2503#define traceQUEUE_SEND_FROM_ISR( pxQueue ) \
2504 switch ((pxQueue)->ucQueueType) \
2506 case queueQUEUE_TYPE_BASE: \
2507 prvTraceStoreEvent_HandleParam(xCopyPosition == queueSEND_TO_BACK ? PSF_EVENT_QUEUE_SEND_FROMISR : PSF_EVENT_QUEUE_SEND_FRONT_FROMISR, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting + 1); \
2509 case queueQUEUE_TYPE_BINARY_SEMAPHORE: \
2510 case queueQUEUE_TYPE_COUNTING_SEMAPHORE: \
2511 prvTraceStoreEvent_HandleParam(PSF_EVENT_SEMAPHORE_GIVE_FROMISR, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting + 1); \
2516#undef traceQUEUE_SEND_FROM_ISR_FAILED
2517#define traceQUEUE_SEND_FROM_ISR_FAILED( pxQueue ) \
2518 switch ((pxQueue)->ucQueueType) \
2520 case queueQUEUE_TYPE_BASE: \
2521 prvTraceStoreEvent_HandleParam(xCopyPosition == queueSEND_TO_BACK ? PSF_EVENT_QUEUE_SEND_FROMISR_FAILED : PSF_EVENT_QUEUE_SEND_FRONT_FROMISR_FAILED, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting); \
2523 case queueQUEUE_TYPE_BINARY_SEMAPHORE: \
2524 case queueQUEUE_TYPE_COUNTING_SEMAPHORE: \
2525 prvTraceStoreEvent_HandleParam(PSF_EVENT_SEMAPHORE_GIVE_FROMISR_FAILED, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting); \
2530#undef traceQUEUE_RECEIVE
2531#define traceQUEUE_RECEIVE( pxQueue ) \
2532 switch ((pxQueue)->ucQueueType) \
2534 case queueQUEUE_TYPE_BASE: \
2535 if (isQueueReceiveHookActuallyPeek) \
2537 prvTraceStoreEvent_HandleParamParam(PSF_EVENT_QUEUE_PEEK, (void*)(pxQueue), xTicksToWait, (pxQueue)->uxMessagesWaiting - 1); \
2541 prvTraceStoreEvent_HandleParamParam(PSF_EVENT_QUEUE_RECEIVE, (void*)(pxQueue), xTicksToWait, (pxQueue)->uxMessagesWaiting - 1); \
2544 case queueQUEUE_TYPE_BINARY_SEMAPHORE: \
2545 case queueQUEUE_TYPE_COUNTING_SEMAPHORE: \
2546 if (isQueueReceiveHookActuallyPeek) \
2548 prvTraceStoreEvent_HandleParamParam(PSF_EVENT_SEMAPHORE_PEEK, (void*)(pxQueue), xTicksToWait, (pxQueue)->uxMessagesWaiting - 1); \
2552 prvTraceStoreEvent_HandleParamParam(PSF_EVENT_SEMAPHORE_TAKE, (void*)(pxQueue), xTicksToWait, (pxQueue)->uxMessagesWaiting - 1); \
2555 case queueQUEUE_TYPE_MUTEX: \
2556 prvTraceStoreEvent_HandleParam(isQueueReceiveHookActuallyPeek ? PSF_EVENT_MUTEX_PEEK : PSF_EVENT_MUTEX_TAKE, (void*)(pxQueue), xTicksToWait); \
2558 case queueQUEUE_TYPE_RECURSIVE_MUTEX: \
2559 prvTraceStoreEvent_HandleParam(isQueueReceiveHookActuallyPeek ? PSF_EVENT_MUTEX_PEEK : PSF_EVENT_MUTEX_TAKE_RECURSIVE, (void*)(pxQueue), xTicksToWait); \
2564#undef traceQUEUE_RECEIVE_FAILED
2565#define traceQUEUE_RECEIVE_FAILED( pxQueue ) \
2566 switch ((pxQueue)->ucQueueType) \
2568 case queueQUEUE_TYPE_BASE: \
2569 prvTraceStoreEvent_HandleParamParam(isQueueReceiveHookActuallyPeek ? PSF_EVENT_QUEUE_PEEK_FAILED : PSF_EVENT_QUEUE_RECEIVE_FAILED, (void*)(pxQueue), xTicksToWait, (pxQueue)->uxMessagesWaiting); \
2571 case queueQUEUE_TYPE_BINARY_SEMAPHORE: \
2572 case queueQUEUE_TYPE_COUNTING_SEMAPHORE: \
2573 prvTraceStoreEvent_HandleParamParam(isQueueReceiveHookActuallyPeek ? PSF_EVENT_SEMAPHORE_PEEK_FAILED : PSF_EVENT_SEMAPHORE_TAKE_FAILED, (void*)(pxQueue), xTicksToWait, (pxQueue)->uxMessagesWaiting); \
2575 case queueQUEUE_TYPE_MUTEX: \
2576 prvTraceStoreEvent_HandleParam(isQueueReceiveHookActuallyPeek ? PSF_EVENT_MUTEX_PEEK_FAILED : PSF_EVENT_MUTEX_TAKE_FAILED, (void*)(pxQueue), xTicksToWait); \
2578 case queueQUEUE_TYPE_RECURSIVE_MUTEX: \
2579 prvTraceStoreEvent_HandleParam(isQueueReceiveHookActuallyPeek ? PSF_EVENT_MUTEX_PEEK_FAILED : PSF_EVENT_MUTEX_TAKE_RECURSIVE_FAILED, (void*)(pxQueue), xTicksToWait); \
2584#undef traceBLOCKING_ON_QUEUE_RECEIVE
2585#define traceBLOCKING_ON_QUEUE_RECEIVE( pxQueue ) \
2586 switch ((pxQueue)->ucQueueType) \
2588 case queueQUEUE_TYPE_BASE: \
2589 prvTraceStoreEvent_HandleParamParam(isQueueReceiveHookActuallyPeek ? PSF_EVENT_QUEUE_PEEK_BLOCK : PSF_EVENT_QUEUE_RECEIVE_BLOCK, (void*)(pxQueue), xTicksToWait, (pxQueue)->uxMessagesWaiting); \
2591 case queueQUEUE_TYPE_BINARY_SEMAPHORE: \
2592 case queueQUEUE_TYPE_COUNTING_SEMAPHORE: \
2593 prvTraceStoreEvent_HandleParamParam(isQueueReceiveHookActuallyPeek ? PSF_EVENT_SEMAPHORE_PEEK_BLOCK : PSF_EVENT_SEMAPHORE_TAKE_BLOCK, (void*)(pxQueue), xTicksToWait, (pxQueue)->uxMessagesWaiting); \
2595 case queueQUEUE_TYPE_MUTEX: \
2596 prvTraceStoreEvent_HandleParam(isQueueReceiveHookActuallyPeek ? PSF_EVENT_MUTEX_PEEK_BLOCK : PSF_EVENT_MUTEX_TAKE_BLOCK, (void*)(pxQueue), xTicksToWait); \
2598 case queueQUEUE_TYPE_RECURSIVE_MUTEX: \
2599 prvTraceStoreEvent_HandleParam(isQueueReceiveHookActuallyPeek ? PSF_EVENT_MUTEX_PEEK_BLOCK : PSF_EVENT_MUTEX_TAKE_RECURSIVE_BLOCK, (void*)(pxQueue), xTicksToWait); \
2603#if (TRC_CFG_FREERTOS_VERSION > TRC_FREERTOS_VERSION_9_0_1)
2606#undef traceQUEUE_PEEK_FAILED
2607#define traceQUEUE_PEEK_FAILED( pxQueue ) \
2608 switch ((pxQueue)->ucQueueType) \
2610 case queueQUEUE_TYPE_BASE: \
2611 prvTraceStoreEvent_HandleParamParam(PSF_EVENT_QUEUE_PEEK_FAILED, (void*)(pxQueue), xTicksToWait, (pxQueue)->uxMessagesWaiting); \
2613 case queueQUEUE_TYPE_BINARY_SEMAPHORE: \
2614 case queueQUEUE_TYPE_COUNTING_SEMAPHORE: \
2615 prvTraceStoreEvent_HandleParamParam(PSF_EVENT_SEMAPHORE_PEEK_FAILED, (void*)(pxQueue), xTicksToWait, (pxQueue)->uxMessagesWaiting); \
2617 case queueQUEUE_TYPE_MUTEX: \
2618 case queueQUEUE_TYPE_RECURSIVE_MUTEX: \
2619 prvTraceStoreEvent_HandleParam(PSF_EVENT_MUTEX_PEEK_FAILED, (void*)(pxQueue), xTicksToWait); \
2624#undef traceBLOCKING_ON_QUEUE_PEEK
2625#define traceBLOCKING_ON_QUEUE_PEEK( pxQueue ) \
2626 switch ((pxQueue)->ucQueueType) \
2628 case queueQUEUE_TYPE_BASE: \
2629 prvTraceStoreEvent_HandleParamParam(PSF_EVENT_QUEUE_PEEK_BLOCK, (void*)(pxQueue), xTicksToWait, (pxQueue)->uxMessagesWaiting); \
2631 case queueQUEUE_TYPE_BINARY_SEMAPHORE: \
2632 case queueQUEUE_TYPE_COUNTING_SEMAPHORE: \
2633 prvTraceStoreEvent_HandleParamParam(PSF_EVENT_SEMAPHORE_PEEK_BLOCK, (void*)(pxQueue), xTicksToWait, (pxQueue)->uxMessagesWaiting); \
2635 case queueQUEUE_TYPE_MUTEX: \
2636 case queueQUEUE_TYPE_RECURSIVE_MUTEX: \
2637 prvTraceStoreEvent_HandleParam(PSF_EVENT_MUTEX_PEEK_BLOCK, (void*)(pxQueue), xTicksToWait); \
2644#undef traceQUEUE_RECEIVE_FROM_ISR
2645#define traceQUEUE_RECEIVE_FROM_ISR( pxQueue ) \
2646 switch ((pxQueue)->ucQueueType) \
2648 case queueQUEUE_TYPE_BASE: \
2649 prvTraceStoreEvent_HandleParam(PSF_EVENT_QUEUE_RECEIVE_FROMISR, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting - 1); \
2651 case queueQUEUE_TYPE_BINARY_SEMAPHORE: \
2652 case queueQUEUE_TYPE_COUNTING_SEMAPHORE: \
2653 prvTraceStoreEvent_HandleParam(PSF_EVENT_SEMAPHORE_TAKE_FROMISR, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting - 1); \
2658#undef traceQUEUE_RECEIVE_FROM_ISR_FAILED
2659#define traceQUEUE_RECEIVE_FROM_ISR_FAILED( pxQueue ) \
2660 switch ((pxQueue)->ucQueueType) \
2662 case queueQUEUE_TYPE_BASE: \
2663 prvTraceStoreEvent_HandleParam(PSF_EVENT_QUEUE_RECEIVE_FROMISR_FAILED, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting); \
2665 case queueQUEUE_TYPE_BINARY_SEMAPHORE: \
2666 case queueQUEUE_TYPE_COUNTING_SEMAPHORE: \
2667 prvTraceStoreEvent_HandleParam(PSF_EVENT_SEMAPHORE_TAKE_FROMISR_FAILED, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting); \
2672#undef traceQUEUE_PEEK
2673#define traceQUEUE_PEEK( pxQueue ) \
2674 switch ((pxQueue)->ucQueueType) \
2676 case queueQUEUE_TYPE_BASE: \
2677 prvTraceStoreEvent_HandleParamParam(PSF_EVENT_QUEUE_PEEK, (void*)(pxQueue), xTicksToWait, (pxQueue)->uxMessagesWaiting); \
2679 case queueQUEUE_TYPE_BINARY_SEMAPHORE: \
2680 case queueQUEUE_TYPE_COUNTING_SEMAPHORE: \
2681 prvTraceStoreEvent_HandleParamParam(PSF_EVENT_SEMAPHORE_PEEK, (void*)(pxQueue), xTicksToWait, (pxQueue)->uxMessagesWaiting); \
2683 case queueQUEUE_TYPE_MUTEX: \
2684 case queueQUEUE_TYPE_RECURSIVE_MUTEX: \
2685 prvTraceStoreEvent_HandleParam(PSF_EVENT_MUTEX_PEEK, (void*)(pxQueue), xTicksToWait); \
2690#undef traceTASK_PRIORITY_SET
2691#define traceTASK_PRIORITY_SET( pxTask, uxNewPriority ) \
2692 xTraceTaskSetPriorityWithoutHandle(pxTask, uxNewPriority)
2695#undef traceTASK_PRIORITY_INHERIT
2696#define traceTASK_PRIORITY_INHERIT( pxTask, uxNewPriority ) \
2697 prvTraceStoreEvent_HandleParam(PSF_EVENT_TASK_PRIO_INHERIT, (void*)(pxTask), uxNewPriority)
2700#undef traceTASK_PRIORITY_DISINHERIT
2701#define traceTASK_PRIORITY_DISINHERIT( pxTask, uxNewPriority ) \
2702 prvTraceStoreEvent_HandleParam(PSF_EVENT_TASK_PRIO_DISINHERIT, (void*)(pxTask), uxNewPriority)
2705#undef traceTASK_RESUME
2706#define traceTASK_RESUME( pxTaskToResume ) \
2707 prvTraceStoreEvent_Handle(PSF_EVENT_TASK_RESUME, (void*)(pxTaskToResume))
2710#undef traceTASK_RESUME_FROM_ISR
2711#define traceTASK_RESUME_FROM_ISR( pxTaskToResume ) \
2712 prvTraceStoreEvent_Handle(PSF_EVENT_TASK_RESUME_FROMISR, (void*)(pxTaskToResume))
2714#if (TRC_CFG_INCLUDE_MEMMANG_EVENTS == 1)
2717#define traceMALLOC( pvAddress, uiSize ) \
2718 if (xTraceIsRecorderEnabled()) \
2720 xTraceHeapAlloc(xTraceKernelPortGetSystemHeapHandle(), pvAddress, uiSize); \
2724#define traceFREE( pvAddress, uiSize ) \
2725 if (xTraceIsRecorderEnabled()) \
2727 xTraceHeapFree(xTraceKernelPortGetSystemHeapHandle(), pvAddress, uiSize); \
2732#if (TRC_CFG_INCLUDE_TIMER_EVENTS == 1)
2735#undef traceTIMER_CREATE
2736#define traceTIMER_CREATE(tmr) \
2737 xTraceObjectRegisterWithoutHandle(PSF_EVENT_TIMER_CREATE, (void*)(tmr), (const char*)(tmr)->pcTimerName, (uint32_t)(tmr)->xTimerPeriodInTicks)
2739#undef traceTIMER_CREATE_FAILED
2740#define traceTIMER_CREATE_FAILED() \
2741 prvTraceStoreEvent_None(PSF_EVENT_TIMER_CREATE_FAILED);
2743#if (TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_8_X_X)
2745#define traceTIMER_COMMAND_SEND_8_0_CASES(tmr) \
2746 case tmrCOMMAND_RESET: \
2747 prvTraceStoreEvent_HandleParam((xReturn == pdPASS) ? PSF_EVENT_TIMER_RESET : PSF_EVENT_TIMER_RESET_FAILED, (void*)(tmr), xOptionalValue); \
2749 case tmrCOMMAND_START_FROM_ISR: \
2750 prvTraceStoreEvent_HandleParam((xReturn == pdPASS) ? PSF_EVENT_TIMER_START_FROMISR : PSF_EVENT_TIMER_START_FROMISR_FAILED, (void*)(tmr), xOptionalValue); \
2752 case tmrCOMMAND_RESET_FROM_ISR: \
2753 prvTraceStoreEvent_HandleParam((xReturn == pdPASS) ? PSF_EVENT_TIMER_RESET_FROMISR : PSF_EVENT_TIMER_RESET_FROMISR_FAILED, (void*)(tmr), xOptionalValue); \
2755 case tmrCOMMAND_STOP_FROM_ISR: \
2756 prvTraceStoreEvent_HandleParam((xReturn == pdPASS) ? PSF_EVENT_TIMER_STOP_FROMISR : PSF_EVENT_TIMER_STOP_FROMISR_FAILED, (void*)(tmr), xOptionalValue); \
2758 case tmrCOMMAND_CHANGE_PERIOD_FROM_ISR: \
2759 prvTraceStoreEvent_HandleParam((xReturn == pdPASS) ? PSF_EVENT_TIMER_CHANGEPERIOD_FROMISR : PSF_EVENT_TIMER_CHANGEPERIOD_FROMISR_FAILED, (void*)(tmr), xOptionalValue); \
2763#define traceTIMER_COMMAND_SEND_8_0_CASES(tmr)
2768#undef traceTIMER_COMMAND_SEND
2769#define traceTIMER_COMMAND_SEND(tmr, xCommandID, xOptionalValue, xReturn) \
2770 switch(xCommandID) \
2772 case tmrCOMMAND_START: \
2773 prvTraceStoreEvent_Handle(((xReturn) == pdPASS) ? PSF_EVENT_TIMER_START : PSF_EVENT_TIMER_START_FAILED, (void*)(tmr)); \
2775 case tmrCOMMAND_STOP: \
2776 prvTraceStoreEvent_Handle(((xReturn) == pdPASS) ? PSF_EVENT_TIMER_STOP : PSF_EVENT_TIMER_STOP_FAILED, (void*)(tmr)); \
2778 case tmrCOMMAND_CHANGE_PERIOD: \
2779 prvTraceStoreEvent_HandleParam(((xReturn) == pdPASS) ? PSF_EVENT_TIMER_CHANGEPERIOD : PSF_EVENT_TIMER_CHANGEPERIOD_FAILED, (void*)(tmr), xOptionalValue); \
2781 case tmrCOMMAND_DELETE: \
2782 xTraceObjectUnregisterWithoutHandle(((xReturn) == pdPASS) ? PSF_EVENT_TIMER_DELETE : PSF_EVENT_TIMER_DELETE_FAILED, (void*)(tmr), 0); \
2784 traceTIMER_COMMAND_SEND_8_0_CASES(tmr) \
2787#undef traceTIMER_EXPIRED
2788#define traceTIMER_EXPIRED(tmr) \
2789 prvTraceStoreEvent_HandleParam(PSF_EVENT_TIMER_EXPIRED, (void*)(tmr), (TraceUnsignedBaseType_t)((tmr)->pxCallbackFunction))
2794#if (TRC_CFG_INCLUDE_PEND_FUNC_CALL_EVENTS == 1)
2796#undef tracePEND_FUNC_CALL
2797#define tracePEND_FUNC_CALL(func, arg1, arg2, ret) \
2798 prvTraceStoreEvent_Param(((ret) == pdPASS) ? PSF_EVENT_TIMER_PENDFUNCCALL : PSF_EVENT_TIMER_PENDFUNCCALL_FAILED, (TraceUnsignedBaseType_t)(func))
2800#undef tracePEND_FUNC_CALL_FROM_ISR
2801#define tracePEND_FUNC_CALL_FROM_ISR(func, arg1, arg2, ret) \
2802 prvTraceStoreEvent_Param(((ret) == pdPASS) ? PSF_EVENT_TIMER_PENDFUNCCALL_FROMISR : PSF_EVENT_TIMER_PENDFUNCCALL_FROMISR_FAILED, (TraceUnsignedBaseType_t)(func))
2806#if (TRC_CFG_INCLUDE_EVENT_GROUP_EVENTS == 1)
2808#if (TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_10_1_0)
2809#undef traceEVENT_GROUP_CREATE
2810#define traceEVENT_GROUP_CREATE(eg) \
2811 xTraceObjectRegisterWithoutHandle(PSF_EVENT_EVENTGROUP_CREATE, (void*)(eg), 0, (uint32_t)(eg)->uxEventBits)
2813#undef traceEVENT_GROUP_DELETE
2814#define traceEVENT_GROUP_DELETE(eg) \
2815 xTraceObjectUnregisterWithoutHandle(PSF_EVENT_EVENTGROUP_DELETE, (void*)(eg), (uint32_t)(eg)->uxEventBits)
2817#undef traceEVENT_GROUP_CREATE
2818#define traceEVENT_GROUP_CREATE(eg) \
2819 xTraceObjectRegisterWithoutHandle(PSF_EVENT_EVENTGROUP_CREATE, (void*)(eg), 0, ((EventGroup_t *)(eg))->uxEventBits)
2821#undef traceEVENT_GROUP_DELETE
2822#define traceEVENT_GROUP_DELETE(eg) \
2823 xTraceObjectUnregisterWithoutHandle(PSF_EVENT_EVENTGROUP_DELETE, (void*)(eg), ((EventGroup_t *)(eg))->uxEventBits)
2826#undef traceEVENT_GROUP_CREATE_FAILED
2827#define traceEVENT_GROUP_CREATE_FAILED() \
2828 prvTraceStoreEvent_None(PSF_EVENT_EVENTGROUP_CREATE_FAILED)
2830#undef traceEVENT_GROUP_SYNC_BLOCK
2831#define traceEVENT_GROUP_SYNC_BLOCK(eg, bitsToSet, bitsToWaitFor) \
2832 prvTraceStoreEvent_HandleParam(PSF_EVENT_EVENTGROUP_SYNC_BLOCK, (void*)(eg), bitsToWaitFor)
2834#undef traceEVENT_GROUP_SYNC_END
2835#define traceEVENT_GROUP_SYNC_END(eg, bitsToSet, bitsToWaitFor, wasTimeout) \
2836 prvTraceStoreEvent_HandleParam(((wasTimeout) != pdTRUE) ? PSF_EVENT_EVENTGROUP_SYNC : PSF_EVENT_EVENTGROUP_SYNC_FAILED, (void*)(eg), bitsToWaitFor)
2838#undef traceEVENT_GROUP_WAIT_BITS_BLOCK
2839#define traceEVENT_GROUP_WAIT_BITS_BLOCK(eg, bitsToWaitFor) \
2840 prvTraceStoreEvent_HandleParam(PSF_EVENT_EVENTGROUP_WAITBITS_BLOCK, (void*)(eg), bitsToWaitFor)
2842#undef traceEVENT_GROUP_WAIT_BITS_END
2843#define traceEVENT_GROUP_WAIT_BITS_END(eg, bitsToWaitFor, wasTimeout) \
2844 prvTraceStoreEvent_HandleParam(((wasTimeout) != pdTRUE) ? PSF_EVENT_EVENTGROUP_WAITBITS : PSF_EVENT_EVENTGROUP_WAITBITS_FAILED, (void*)(eg), bitsToWaitFor)
2846#undef traceEVENT_GROUP_CLEAR_BITS
2847#define traceEVENT_GROUP_CLEAR_BITS(eg, bitsToClear) \
2848 prvTraceStoreEvent_HandleParam(PSF_EVENT_EVENTGROUP_CLEARBITS, (void*)(eg), bitsToClear)
2850#undef traceEVENT_GROUP_CLEAR_BITS_FROM_ISR
2851#define traceEVENT_GROUP_CLEAR_BITS_FROM_ISR(eg, bitsToClear) \
2852 prvTraceStoreEvent_HandleParam(PSF_EVENT_EVENTGROUP_CLEARBITS_FROMISR, (void*)(eg), bitsToClear)
2854#undef traceEVENT_GROUP_SET_BITS
2855#define traceEVENT_GROUP_SET_BITS(eg, bitsToSet) \
2856 prvTraceStoreEvent_HandleParam(PSF_EVENT_EVENTGROUP_SETBITS, (void*)(eg), bitsToSet)
2858#undef traceEVENT_GROUP_SET_BITS_FROM_ISR
2859#define traceEVENT_GROUP_SET_BITS_FROM_ISR(eg, bitsToSet) \
2860 prvTraceStoreEvent_HandleParam(PSF_EVENT_EVENTGROUP_SETBITS_FROMISR, (void*)(eg), bitsToSet)
2864#undef traceTASK_NOTIFY
2865#if (TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_10_4_0)
2867#define traceTASK_NOTIFY(index) \
2868 prvTraceStoreEvent_Handle(PSF_EVENT_TASK_NOTIFY, (void*)xTaskToNotify)
2872#define traceTASK_NOTIFY() \
2873 prvTraceStoreEvent_Handle(PSF_EVENT_TASK_NOTIFY, (void*)xTaskToNotify)
2877#undef traceTASK_NOTIFY_FROM_ISR
2878#if (TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_10_4_0)
2880#define traceTASK_NOTIFY_FROM_ISR(index) \
2881 prvTraceStoreEvent_Handle(PSF_EVENT_TASK_NOTIFY_FROM_ISR, (void*)xTaskToNotify)
2885#define traceTASK_NOTIFY_FROM_ISR() \
2886 prvTraceStoreEvent_Handle(PSF_EVENT_TASK_NOTIFY_FROM_ISR, (void*)xTaskToNotify)
2891#undef traceTASK_NOTIFY_GIVE_FROM_ISR
2892#define traceTASK_NOTIFY_GIVE_FROM_ISR traceTASK_NOTIFY_FROM_ISR
2894#undef traceTASK_NOTIFY_WAIT
2895#if (TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_10_4_0)
2897#define traceTASK_NOTIFY_WAIT(index) \
2898 prvTraceStoreEvent_HandleParam(pxCurrentTCB->ucNotifyState[index] == taskNOTIFICATION_RECEIVED ? PSF_EVENT_TASK_NOTIFY_WAIT : PSF_EVENT_TASK_NOTIFY_WAIT_FAILED, (void*)pxCurrentTCB, xTicksToWait)
2900#elif (TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_9_0_0)
2902#define traceTASK_NOTIFY_WAIT() \
2903 prvTraceStoreEvent_HandleParam(pxCurrentTCB->ucNotifyState == taskNOTIFICATION_RECEIVED ? PSF_EVENT_TASK_NOTIFY_WAIT : PSF_EVENT_TASK_NOTIFY_WAIT_FAILED, (void*)pxCurrentTCB, xTicksToWait)
2907#define traceTASK_NOTIFY_WAIT() \
2908 prvTraceStoreEvent_HandleParam(pxCurrentTCB->eNotifyState == eNotified ? PSF_EVENT_TASK_NOTIFY_WAIT : PSF_EVENT_TASK_NOTIFY_WAIT_FAILED, (void*)pxCurrentTCB, xTicksToWait)
2913#undef traceTASK_NOTIFY_TAKE
2914#define traceTASK_NOTIFY_TAKE traceTASK_NOTIFY_WAIT
2916#undef traceTASK_NOTIFY_WAIT_BLOCK
2917#if (TRC_CFG_FREERTOS_VERSION >= TRC_FREERTOS_VERSION_10_4_0)
2919#define traceTASK_NOTIFY_WAIT_BLOCK(index) \
2920 prvTraceStoreEvent_HandleParam(PSF_EVENT_TASK_NOTIFY_WAIT_BLOCK, (void*)pxCurrentTCB, xTicksToWait)
2924#define traceTASK_NOTIFY_WAIT_BLOCK() \
2925 prvTraceStoreEvent_HandleParam(PSF_EVENT_TASK_NOTIFY_WAIT_BLOCK, (void*)pxCurrentTCB, xTicksToWait)
2930#undef traceTASK_NOTIFY_TAKE_BLOCK
2931#define traceTASK_NOTIFY_TAKE_BLOCK traceTASK_NOTIFY_WAIT_BLOCK
2933#undef traceQUEUE_REGISTRY_ADD
2934#define traceQUEUE_REGISTRY_ADD(object, name) \
2935 xTraceObjectSetNameWithoutHandle(object, (const char*)(name));
2937#if (TRC_CFG_INCLUDE_STREAM_BUFFER_EVENTS == 1)
2939#undef traceSTREAM_BUFFER_CREATE
2940#define traceSTREAM_BUFFER_CREATE( pxStreamBuffer, xIsMessageBuffer ) \
2941 xTraceObjectRegisterWithoutHandle((xIsMessageBuffer) == 1 ? PSF_EVENT_MESSAGEBUFFER_CREATE : PSF_EVENT_STREAMBUFFER_CREATE, (void*)(pxStreamBuffer), "", (uint32_t)xBufferSizeBytes)
2943#undef traceSTREAM_BUFFER_CREATE_FAILED
2944#define traceSTREAM_BUFFER_CREATE_FAILED( xIsMessageBuffer ) \
2945 prvTraceStoreEvent_HandleParam((xIsMessageBuffer) == 1 ? PSF_EVENT_MESSAGEBUFFER_CREATE_FAILED : PSF_EVENT_STREAMBUFFER_CREATE_FAILED, 0 , xBufferSizeBytes)
2947#undef traceSTREAM_BUFFER_CREATE_STATIC_FAILED
2948#define traceSTREAM_BUFFER_CREATE_STATIC_FAILED( xReturn, xIsMessageBuffer ) \
2949 traceSTREAM_BUFFER_CREATE_FAILED( xIsMessageBuffer )
2951#undef traceSTREAM_BUFFER_DELETE
2952#define traceSTREAM_BUFFER_DELETE( xStreamBuffer ) \
2953 xTraceObjectUnregisterWithoutHandle(prvGetStreamBufferType(xStreamBuffer) > 0 ? PSF_EVENT_MESSAGEBUFFER_DELETE : PSF_EVENT_STREAMBUFFER_DELETE, (void*)(xStreamBuffer), prvBytesInBuffer(xStreamBuffer));
2955#undef traceSTREAM_BUFFER_RESET
2956#define traceSTREAM_BUFFER_RESET( xStreamBuffer ) \
2957 prvTraceStoreEvent_HandleParam(prvGetStreamBufferType(xStreamBuffer) > 0 ? PSF_EVENT_MESSAGEBUFFER_RESET : PSF_EVENT_STREAMBUFFER_RESET, (void*)(xStreamBuffer), 0)
2959#undef traceSTREAM_BUFFER_SEND
2960#define traceSTREAM_BUFFER_SEND( xStreamBuffer, xReturn ) \
2961 prvTraceStoreEvent_HandleParam(prvGetStreamBufferType(xStreamBuffer) > 0 ? PSF_EVENT_MESSAGEBUFFER_SEND : PSF_EVENT_STREAMBUFFER_SEND, (void*)(xStreamBuffer), prvBytesInBuffer(xStreamBuffer))
2963#undef traceBLOCKING_ON_STREAM_BUFFER_SEND
2964#define traceBLOCKING_ON_STREAM_BUFFER_SEND( xStreamBuffer ) \
2965 prvTraceStoreEvent_Handle(prvGetStreamBufferType(xStreamBuffer) > 0 ? PSF_EVENT_MESSAGEBUFFER_SEND_BLOCK : PSF_EVENT_STREAMBUFFER_SEND_BLOCK, (void*)(xStreamBuffer))
2967#undef traceSTREAM_BUFFER_SEND_FAILED
2968#define traceSTREAM_BUFFER_SEND_FAILED( xStreamBuffer ) \
2969 prvTraceStoreEvent_Handle(prvGetStreamBufferType(xStreamBuffer) > 0 ? PSF_EVENT_MESSAGEBUFFER_SEND_FAILED : PSF_EVENT_STREAMBUFFER_SEND_FAILED, (void*)(xStreamBuffer))
2971#undef traceSTREAM_BUFFER_RECEIVE
2972#define traceSTREAM_BUFFER_RECEIVE( xStreamBuffer, xReceivedLength ) \
2973 prvTraceStoreEvent_HandleParam(prvGetStreamBufferType(xStreamBuffer) > 0 ? PSF_EVENT_MESSAGEBUFFER_RECEIVE: PSF_EVENT_STREAMBUFFER_RECEIVE, (void*)(xStreamBuffer), prvBytesInBuffer(xStreamBuffer))
2975#undef traceBLOCKING_ON_STREAM_BUFFER_RECEIVE
2976#define traceBLOCKING_ON_STREAM_BUFFER_RECEIVE( xStreamBuffer ) \
2977 prvTraceStoreEvent_Handle(prvGetStreamBufferType(xStreamBuffer) > 0 ? PSF_EVENT_MESSAGEBUFFER_RECEIVE_BLOCK: PSF_EVENT_STREAMBUFFER_RECEIVE_BLOCK, (void*)(xStreamBuffer))
2979#undef traceSTREAM_BUFFER_RECEIVE_FAILED
2980#define traceSTREAM_BUFFER_RECEIVE_FAILED( xStreamBuffer ) \
2981 prvTraceStoreEvent_Handle(prvGetStreamBufferType(xStreamBuffer) > 0 ? PSF_EVENT_MESSAGEBUFFER_RECEIVE_FAILED: PSF_EVENT_STREAMBUFFER_RECEIVE_FAILED, (void*)(xStreamBuffer))
2983#undef traceSTREAM_BUFFER_SEND_FROM_ISR
2984#define traceSTREAM_BUFFER_SEND_FROM_ISR( xStreamBuffer, xReturn ) \
2985 if ( (xReturn) > ( size_t ) 0 ) \
2987 prvTraceStoreEvent_HandleParam(prvGetStreamBufferType(xStreamBuffer) > 0 ? PSF_EVENT_MESSAGEBUFFER_SEND_FROM_ISR : PSF_EVENT_STREAMBUFFER_SEND_FROM_ISR, (void*)(xStreamBuffer), prvBytesInBuffer(xStreamBuffer)); \
2991 prvTraceStoreEvent_Handle(prvGetStreamBufferType(xStreamBuffer) > 0 ? PSF_EVENT_MESSAGEBUFFER_SEND_FROM_ISR_FAILED : PSF_EVENT_STREAMBUFFER_SEND_FROM_ISR_FAILED, (void*)(xStreamBuffer)); \
2994#undef traceSTREAM_BUFFER_RECEIVE_FROM_ISR
2995#define traceSTREAM_BUFFER_RECEIVE_FROM_ISR( xStreamBuffer, xReceivedLength ) \
2996 if ( (xReceivedLength) > ( size_t ) 0 ) \
2998 prvTraceStoreEvent_HandleParam(prvGetStreamBufferType(xStreamBuffer) > 0 ? PSF_EVENT_MESSAGEBUFFER_RECEIVE_FROM_ISR : PSF_EVENT_STREAMBUFFER_RECEIVE_FROM_ISR, (void*)(xStreamBuffer), prvBytesInBuffer(xStreamBuffer)); \
3002 prvTraceStoreEvent_Handle(prvGetStreamBufferType(xStreamBuffer) > 0 ? PSF_EVENT_MESSAGEBUFFER_RECEIVE_FROM_ISR_FAILED : PSF_EVENT_STREAMBUFFER_RECEIVE_FROM_ISR_FAILED, (void*)(xStreamBuffer)); \
3014#define vTraceSetQueueName(object, name)
3015#define vTraceSetSemaphoreName(object, name)
3016#define vTraceSetMutexName(object, name)
3017#define vTraceSetEventGroupName(object, name)
3018#define vTraceSetStreamBufferName(object, name)
3019#define vTraceSetMessageBufferName(object, name)
A structure representing the kernel port buffer.
Definition: trcKernelPort.h:73