11#ifndef TRC_KERNEL_PORT_H
12#define TRC_KERNEL_PORT_H
14#include <freertos/FreeRTOS.h>
15#include <freertos/portmacro.h>
16#include <trcDefines.h>
17#include <esp_idf_version.h>
23#ifdef CONFIG_PERCEPIO_TRACERECORDER_ENABLED
24#define TRC_USE_TRACEALYZER_RECORDER 1
26#define TRC_USE_TRACEALYZER_RECORDER 0
30#define TRC_ESP_IDF_VERSION_NOT_SET 0
31#define TRC_ESP_IDF_VERSION_4_2_0 420
32#define TRC_ESP_IDF_VERSION_4_3_0 430
33#define TRC_ESP_IDF_VERSION_4_4_0 440
34#define TRC_ESP_IDF_VERSION_4_5_0 450
35#define TRC_ESP_IDF_VERSION_5_0_0 500
36#define TRC_ESP_IDF_VERSION_5_1_0 510
37#define TRC_ESP_IDF_VERSION_5_2_0 520
39#if ESP_IDF_VERSION_MAJOR == 4 && ESP_IDF_VERSION_MINOR == 0
40#define TRC_CFG_ESP_IDF_VERSION TRC_ESP_IDF_VERSION_4_0_0
41#elif ESP_IDF_VERSION_MAJOR == 4 && ESP_IDF_VERSION_MINOR == 1
42#define TRC_CFG_ESP_IDF_VERSION TRC_ESP_IDF_VERSION_4_1_0
43#elif ESP_IDF_VERSION_MAJOR == 4 && ESP_IDF_VERSION_MINOR == 2
44#define TRC_CFG_ESP_IDF_VERSION TRC_ESP_IDF_VERSION_4_2_0
45#elif ESP_IDF_VERSION_MAJOR == 4 && ESP_IDF_VERSION_MINOR == 3
46#define TRC_CFG_ESP_IDF_VERSION TRC_ESP_IDF_VERSION_4_3_0
47#elif ESP_IDF_VERSION_MAJOR == 4 && ESP_IDF_VERSION_MINOR == 4
48#define TRC_CFG_ESP_IDF_VERSION TRC_ESP_IDF_VERSION_4_4_0
49#elif ESP_IDF_VERSION_MAJOR == 4 && ESP_IDF_VERSION_MINOR == 5
50#define TRC_CFG_ESP_IDF_VERSION TRC_ESP_IDF_VERSION_4_5_0
51#elif ESP_IDF_VERSION_MAJOR == 5 && ESP_IDF_VERSION_MINOR == 0
52#define TRC_CFG_ESP_IDF_VERSION TRC_ESP_IDF_VERSION_5_0_0
53#elif ESP_IDF_VERSION_MAJOR == 5 && ESP_IDF_VERSION_MINOR == 1
54#define TRC_CFG_ESP_IDF_VERSION TRC_ESP_IDF_VERSION_5_1_0
55#elif ESP_IDF_VERSION_MAJOR == 5 && ESP_IDF_VERSION_MINOR == 2
56#define TRC_CFG_ESP_IDF_VERSION TRC_ESP_IDF_VERSION_5_2_0
58#define TRC_CFG_ESP_IDF_VERSION TRC_ESP_IDF_VERSION_NOT_SET
61#if (TRC_CFG_ESP_IDF_VERSION >= TRC_ESP_IDF_VERSION_4_3_0)
62#define prvGetStreamBufferType(x) ((( StreamBuffer_t * )x )->ucFlags & sbFLAGS_IS_MESSAGE_BUFFER)
64#define prvGetStreamBufferType(x) 0
67#define STRING_CAST(x) x
68#define TraceKernelPortTickType_t TickType_t
69#define TraceKernelPortTaskHandle_t TaskHandle_t
71#if !CONFIG_FREERTOS_UNICORE
72#undef TRC_CFG_GET_CURRENT_CORE
73#define TRC_CFG_GET_CURRENT_CORE() (xPortGetCoreID())
76#if !CONFIG_FREERTOS_UNICORE
77extern portMUX_TYPE xTraceMutex;
79#define TRC_KERNEL_PORT_ALLOC_CRITICAL_SECTION() TraceUnsignedBaseType_t TRACE_ALLOC_CRITICAL_SECTION_NAME;
80#define TRC_KERNEL_PORT_ENTER_CRITICAL_SECTION() TRACE_ALLOC_CRITICAL_SECTION_NAME = 0UL; portENTER_CRITICAL_SAFE(&xTraceMutex);
81#define TRC_KERNEL_PORT_EXIT_CRITICAL_SECTION() (void)TRACE_ALLOC_CRITICAL_SECTION_NAME; portEXIT_CRITICAL_SAFE(&xTraceMutex);
84#define TRC_KERNEL_PORT_ALLOC_CRITICAL_SECTION()
85#define TRC_KERNEL_PORT_ENTER_CRITICAL_SECTION()
86#define TRC_KERNEL_PORT_EXIT_CRITICAL_SECTION()
89#if (defined(TRC_USE_TRACEALYZER_RECORDER)) && (TRC_USE_TRACEALYZER_RECORDER == 1)
91#define TRC_PLATFORM_CFG "FreeRTOS"
92#define TRC_PLATFORM_CFG_MAJOR 1
93#define TRC_PLATFORM_CFG_MINOR 2
94#define TRC_PLATFORM_CFG_PATCH 0
110__attribute__((constructor))
void vTraceInit();
112#if defined(TRC_CFG_ENABLE_STACK_MONITOR) && (TRC_CFG_ENABLE_STACK_MONITOR == 1) && (TRC_CFG_SCHEDULING_ONLY == 0)
119#define TRC_CFG_ALLOW_TASK_DELETE INCLUDE_vTaskDelete
122#undef INCLUDE_uxTaskGetStackHighWaterMark
123#define INCLUDE_uxTaskGetStackHighWaterMark 1
128#undef INCLUDE_xTaskGetCurrentTaskHandle
129#define INCLUDE_xTaskGetCurrentTaskHandle 1
131#if (TRC_CFG_RECORDER_MODE == TRC_RECORDER_MODE_STREAMING)
133#define TRC_KERNEL_PORT_KERNEL_CAN_SWITCH_TO_SAME_TASK 0
137#define TRC_KERNEL_PORT_BUFFER_SIZE (sizeof(TraceHeapHandle_t) + sizeof(void*))
146 uint8_t buffer[TRC_KERNEL_PORT_BUFFER_SIZE];
165traceResult xTraceKernelPortEnable(
void);
175traceResult xTraceKernelPortDelay(uint32_t uiTicks);
183unsigned char xTraceKernelPortIsSchedulerSuspended(
void);
188#define TRC_KERNEL_PORT_SET_INTERRUPT_MASK() ((TraceBaseType_t)portSET_INTERRUPT_MASK_FROM_ISR())
190#if (TRC_CFG_SCHEDULING_ONLY == 0)
198void vTraceSetQueueName(
void* pvQueue,
const char* szName);
206void vTraceSetSemaphoreName(
void* pvSemaphore,
const char* szName);
214void vTraceSetMutexName(
void* pvMutex,
const char* szName);
216#if (TRC_CFG_INCLUDE_EVENT_GROUP_EVENTS == 1)
224void vTraceSetEventGroupName(
void* pvEventGroup,
const char* szName);
231#define vTraceSetEventGroupName(__pvEventGroup, __szName) ((void)(__pvEventGroup), (void)(__szName))
235#if (TRC_CFG_INCLUDE_STREAM_BUFFER_EVENTS == 1)
243void vTraceSetStreamBufferName(
void* pvStreamBuffer,
const char* szName);
251void vTraceSetMessageBufferName(
void* pvMessageBuffer,
const char* szName);
258#define vTraceSetStreamBufferName(__pvStreamBuffer, __szName) ((void)(__pvStreamBuffer), (void)(__szName))
263#define vTraceSetMessageBufferName(__pvMessageBuffer, __szName) ((void)(__pvMessageBuffer), (void)(__szName))
267#if defined(TRC_CFG_ENABLE_STACK_MONITOR) && (TRC_CFG_ENABLE_STACK_MONITOR == 1)
278traceResult xTraceKernelPortGetUnusedStack(
void* pvTask, TraceUnsignedBaseType_t *puxUnusedStack);
287#define vTraceSetQueueName(__pvQueue, __szName) ((void)(__pvQueue), (void)(__szName))
292#define vTraceSetSemaphoreName(__pvSemaphore, __szName) ((void)(__pvSemaphore), (void)(__szName))
297#define vTraceSetMutexName(__pvMutex, __szName) ((void)(__pvMutex), (void)(__szName))
302#define vTraceSetEventGroupName(__pvEventGroup, __szName) ((void)(__pvEventGroup), (void)(__szName))
307#define vTraceSetStreamBufferName(__pvStreamBuffer, __szName) ((void)(__pvStreamBuffer), (void)(__szName))
312#define vTraceSetMessageBufferName(__pvMessageBuffer, __szName) ((void)(__pvMessageBuffer), (void)(__szName))
317#define xTraceKernelPortGetUnusedStack(pvTask, puxUnusedStack) ((void)(pvTask), (void)(puxUnusedStack))
321#if (TRC_CFG_RECORDER_MODE == TRC_RECORDER_MODE_STREAMING)
324#undef INCLUDE_xTaskGetSchedulerState
325#define INCLUDE_xTaskGetSchedulerState 1
332#define TRACE_KERNEL_VERSION 0x1AA1
337#define TRC_TICK_RATE_HZ configTICK_RATE_HZ
342#define TRACE_CPU_CLOCK_HZ configCPU_CLOCK_HZ
344#if (TRC_CFG_RECORDER_BUFFER_ALLOCATION == TRC_RECORDER_BUFFER_ALLOCATION_DYNAMIC)
348#define TRC_KERNEL_PORT_HEAP_INIT(size)
353#define TRC_KERNEL_PORT_HEAP_MALLOC(size) pvPortMalloc(size)
356#if defined(configUSE_TIMERS)
357#if (configUSE_TIMERS == 1)
358#undef INCLUDE_xTimerGetTimerDaemonTaskHandle
359#define INCLUDE_xTimerGetTimerDaemonTaskHandle 1
363#if (TRC_CFG_ESP_IDF_VERSION <= TRC_ESP_IDF_VERSION_4_2_0)
364 #define isQueueReceiveHookActuallyPeek xJustPeeking
365#elif (TRC_CFG_ESP_IDF_VERSION > TRC_ESP_IDF_VERSION_4_2_0)
366 #define isQueueReceiveHookActuallyPeek (__LINE__ < 0)
370#define TZ__CAT2(a,b) a ## b
371#define TZ__CAT(a,b) TZ__CAT2(a, b)
378#define xQueueGiveFromISR(a,b) TZ__CAT(xQueueGiveFromISR__, uxQueueType) (a,b)
381#define xQueueGiveFromISR__pcHead(__a, __b) MyWrapper_xQueueGiveFromISR(__a, __b, const BaseType_t xCopyPosition); \
382BaseType_t xQueueGiveFromISR(__a, __b) { return MyWrapper_xQueueGiveFromISR(xQueue, pxHigherPriorityTaskWoken, queueSEND_TO_BACK); } \
383BaseType_t MyWrapper_xQueueGiveFromISR(__a, __b, const BaseType_t xCopyPosition)
386#define xQueueGiveFromISR__uxQueueType(__a, __b) xQueueGiveFromISR(__a,__b)
388#if (TRC_CFG_RECORDER_MODE == TRC_RECORDER_MODE_STREAMING)
390TraceHeapHandle_t xTraceKernelPortGetSystemHeapHandle(
void);
401#define PSF_EVENT_NULL_EVENT 0x00
403#define PSF_EVENT_TRACE_START 0x01
404#define PSF_EVENT_TS_CONFIG 0x02
405#define PSF_EVENT_OBJ_NAME 0x03
406#define PSF_EVENT_TASK_PRIORITY 0x04
407#define PSF_EVENT_TASK_PRIO_INHERIT 0x05
408#define PSF_EVENT_TASK_PRIO_DISINHERIT 0x06
409#define PSF_EVENT_DEFINE_ISR 0x07
411#define PSF_EVENT_TASK_CREATE 0x10
412#define PSF_EVENT_QUEUE_CREATE 0x11
413#define PSF_EVENT_SEMAPHORE_BINARY_CREATE 0x12
414#define PSF_EVENT_MUTEX_CREATE 0x13
415#define PSF_EVENT_TIMER_CREATE 0x14
416#define PSF_EVENT_EVENTGROUP_CREATE 0x15
417#define PSF_EVENT_SEMAPHORE_COUNTING_CREATE 0x16
418#define PSF_EVENT_MUTEX_RECURSIVE_CREATE 0x17
419#define PSF_EVENT_STREAMBUFFER_CREATE 0x18
420#define PSF_EVENT_MESSAGEBUFFER_CREATE 0x19
422#define PSF_EVENT_TASK_DELETE 0x20
423#define PSF_EVENT_QUEUE_DELETE 0x21
424#define PSF_EVENT_SEMAPHORE_DELETE 0x22
425#define PSF_EVENT_MUTEX_DELETE 0x23
426#define PSF_EVENT_TIMER_DELETE 0x24
427#define PSF_EVENT_EVENTGROUP_DELETE 0x25
428#define PSF_EVENT_STREAMBUFFER_DELETE 0x28
429#define PSF_EVENT_MESSAGEBUFFER_DELETE 0x29
431#define PSF_EVENT_TASK_READY 0x30
432#define PSF_EVENT_NEW_TIME 0x31
433#define PSF_EVENT_NEW_TIME_SCHEDULER_SUSPENDED 0x32
434#define PSF_EVENT_ISR_BEGIN 0x33
435#define PSF_EVENT_ISR_RESUME 0x34
436#define PSF_EVENT_TS_BEGIN 0x35
437#define PSF_EVENT_TS_RESUME 0x36
438#define PSF_EVENT_TASK_ACTIVATE 0x37
440#define PSF_EVENT_MALLOC 0x38
441#define PSF_EVENT_FREE 0x39
443#define PSF_EVENT_LOWPOWER_BEGIN 0x3A
444#define PSF_EVENT_LOWPOWER_END 0x3B
446#define PSF_EVENT_IFE_NEXT 0x3C
447#define PSF_EVENT_IFE_DIRECT 0x3D
449#define PSF_EVENT_TASK_CREATE_FAILED 0x40
450#define PSF_EVENT_QUEUE_CREATE_FAILED 0x41
451#define PSF_EVENT_SEMAPHORE_BINARY_CREATE_FAILED 0x42
452#define PSF_EVENT_MUTEX_CREATE_FAILED 0x43
453#define PSF_EVENT_TIMER_CREATE_FAILED 0x44
454#define PSF_EVENT_EVENTGROUP_CREATE_FAILED 0x45
455#define PSF_EVENT_SEMAPHORE_COUNTING_CREATE_FAILED 0x46
456#define PSF_EVENT_MUTEX_RECURSIVE_CREATE_FAILED 0x47
457#define PSF_EVENT_STREAMBUFFER_CREATE_FAILED 0x49
458#define PSF_EVENT_MESSAGEBUFFER_CREATE_FAILED 0x4A
460#define PSF_EVENT_TIMER_DELETE_FAILED 0x48
462#define PSF_EVENT_QUEUE_SEND 0x50
463#define PSF_EVENT_SEMAPHORE_GIVE 0x51
464#define PSF_EVENT_MUTEX_GIVE 0x52
466#define PSF_EVENT_QUEUE_SEND_FAILED 0x53
467#define PSF_EVENT_SEMAPHORE_GIVE_FAILED 0x54
468#define PSF_EVENT_MUTEX_GIVE_FAILED 0x55
470#define PSF_EVENT_QUEUE_SEND_BLOCK 0x56
471#define PSF_EVENT_SEMAPHORE_GIVE_BLOCK 0x57
472#define PSF_EVENT_MUTEX_GIVE_BLOCK 0x58
474#define PSF_EVENT_QUEUE_SEND_FROMISR 0x59
475#define PSF_EVENT_SEMAPHORE_GIVE_FROMISR 0x5A
477#define PSF_EVENT_QUEUE_SEND_FROMISR_FAILED 0x5C
478#define PSF_EVENT_SEMAPHORE_GIVE_FROMISR_FAILED 0x5D
480#define PSF_EVENT_QUEUE_RECEIVE 0x60
481#define PSF_EVENT_SEMAPHORE_TAKE 0x61
482#define PSF_EVENT_MUTEX_TAKE 0x62
484#define PSF_EVENT_QUEUE_RECEIVE_FAILED 0x63
485#define PSF_EVENT_SEMAPHORE_TAKE_FAILED 0x64
486#define PSF_EVENT_MUTEX_TAKE_FAILED 0x65
488#define PSF_EVENT_QUEUE_RECEIVE_BLOCK 0x66
489#define PSF_EVENT_SEMAPHORE_TAKE_BLOCK 0x67
490#define PSF_EVENT_MUTEX_TAKE_BLOCK 0x68
492#define PSF_EVENT_QUEUE_RECEIVE_FROMISR 0x69
493#define PSF_EVENT_SEMAPHORE_TAKE_FROMISR 0x6A
495#define PSF_EVENT_QUEUE_RECEIVE_FROMISR_FAILED 0x6C
496#define PSF_EVENT_SEMAPHORE_TAKE_FROMISR_FAILED 0x6D
498#define PSF_EVENT_QUEUE_PEEK 0x70
499#define PSF_EVENT_SEMAPHORE_PEEK 0x71
500#define PSF_EVENT_MUTEX_PEEK 0x72
502#define PSF_EVENT_QUEUE_PEEK_FAILED 0x73
503#define PSF_EVENT_SEMAPHORE_PEEK_FAILED 0x74
504#define PSF_EVENT_MUTEX_PEEK_FAILED 0x75
506#define PSF_EVENT_QUEUE_PEEK_BLOCK 0x76
507#define PSF_EVENT_SEMAPHORE_PEEK_BLOCK 0x77
508#define PSF_EVENT_MUTEX_PEEK_BLOCK 0x78
510#define PSF_EVENT_TASK_DELAY_UNTIL 0x79
511#define PSF_EVENT_TASK_DELAY 0x7A
512#define PSF_EVENT_TASK_SUSPEND 0x7B
513#define PSF_EVENT_TASK_RESUME 0x7C
514#define PSF_EVENT_TASK_RESUME_FROMISR 0x7D
516#define PSF_EVENT_TIMER_PENDFUNCCALL 0x80
517#define PSF_EVENT_TIMER_PENDFUNCCALL_FROMISR 0x81
518#define PSF_EVENT_TIMER_PENDFUNCCALL_FAILED 0x82
519#define PSF_EVENT_TIMER_PENDFUNCCALL_FROMISR_FAILED 0x83
522#define PSF_EVENT_USER_EVENT 0x90
525#define PSF_EVENT_USER_EVENT_FIXED 0x98
527#define PSF_EVENT_TIMER_START 0xA0
528#define PSF_EVENT_TIMER_RESET 0xA1
529#define PSF_EVENT_TIMER_STOP 0xA2
530#define PSF_EVENT_TIMER_CHANGEPERIOD 0xA3
531#define PSF_EVENT_TIMER_START_FROMISR 0xA4
532#define PSF_EVENT_TIMER_RESET_FROMISR 0xA5
533#define PSF_EVENT_TIMER_STOP_FROMISR 0xA6
534#define PSF_EVENT_TIMER_CHANGEPERIOD_FROMISR 0xA7
535#define PSF_EVENT_TIMER_START_FAILED 0xA8
536#define PSF_EVENT_TIMER_RESET_FAILED 0xA9
537#define PSF_EVENT_TIMER_STOP_FAILED 0xAA
538#define PSF_EVENT_TIMER_CHANGEPERIOD_FAILED 0xAB
539#define PSF_EVENT_TIMER_START_FROMISR_FAILED 0xAC
540#define PSF_EVENT_TIMER_RESET_FROMISR_FAILED 0xAD
541#define PSF_EVENT_TIMER_STOP_FROMISR_FAILED 0xAE
542#define PSF_EVENT_TIMER_CHANGEPERIOD_FROMISR_FAILED 0xAF
544#define PSF_EVENT_EVENTGROUP_SYNC 0xB0
545#define PSF_EVENT_EVENTGROUP_WAITBITS 0xB1
546#define PSF_EVENT_EVENTGROUP_CLEARBITS 0xB2
547#define PSF_EVENT_EVENTGROUP_CLEARBITS_FROMISR 0xB3
548#define PSF_EVENT_EVENTGROUP_SETBITS 0xB4
549#define PSF_EVENT_EVENTGROUP_SETBITS_FROMISR 0xB5
550#define PSF_EVENT_EVENTGROUP_SYNC_BLOCK 0xB6
551#define PSF_EVENT_EVENTGROUP_WAITBITS_BLOCK 0xB7
552#define PSF_EVENT_EVENTGROUP_SYNC_FAILED 0xB8
553#define PSF_EVENT_EVENTGROUP_WAITBITS_FAILED 0xB9
555#define PSF_EVENT_QUEUE_SEND_FRONT 0xC0
556#define PSF_EVENT_QUEUE_SEND_FRONT_FAILED 0xC1
557#define PSF_EVENT_QUEUE_SEND_FRONT_BLOCK 0xC2
558#define PSF_EVENT_QUEUE_SEND_FRONT_FROMISR 0xC3
559#define PSF_EVENT_QUEUE_SEND_FRONT_FROMISR_FAILED 0xC4
560#define PSF_EVENT_MUTEX_GIVE_RECURSIVE 0xC5
561#define PSF_EVENT_MUTEX_GIVE_RECURSIVE_FAILED 0xC6
562#define PSF_EVENT_MUTEX_TAKE_RECURSIVE 0xC7
563#define PSF_EVENT_MUTEX_TAKE_RECURSIVE_FAILED 0xC8
565#define PSF_EVENT_TASK_NOTIFY 0xC9
566#define PSF_EVENT_TASK_NOTIFY_WAIT 0xCA
567#define PSF_EVENT_TASK_NOTIFY_WAIT_BLOCK 0xCB
568#define PSF_EVENT_TASK_NOTIFY_WAIT_FAILED 0xCC
569#define PSF_EVENT_TASK_NOTIFY_FROM_ISR 0xCD
571#define PSF_EVENT_TIMER_EXPIRED 0xD2
573#define PSF_EVENT_STREAMBUFFER_SEND 0xD3
574#define PSF_EVENT_STREAMBUFFER_SEND_BLOCK 0xD4
575#define PSF_EVENT_STREAMBUFFER_SEND_FAILED 0xD5
576#define PSF_EVENT_STREAMBUFFER_RECEIVE 0xD6
577#define PSF_EVENT_STREAMBUFFER_RECEIVE_BLOCK 0xD7
578#define PSF_EVENT_STREAMBUFFER_RECEIVE_FAILED 0xD8
579#define PSF_EVENT_STREAMBUFFER_SEND_FROM_ISR 0xD9
580#define PSF_EVENT_STREAMBUFFER_SEND_FROM_ISR_FAILED 0xDA
581#define PSF_EVENT_STREAMBUFFER_RECEIVE_FROM_ISR 0xDB
582#define PSF_EVENT_STREAMBUFFER_RECEIVE_FROM_ISR_FAILED 0xDC
583#define PSF_EVENT_STREAMBUFFER_RESET 0xDD
585#define PSF_EVENT_MESSAGEBUFFER_SEND 0xDE
586#define PSF_EVENT_MESSAGEBUFFER_SEND_BLOCK 0xDF
587#define PSF_EVENT_MESSAGEBUFFER_SEND_FAILED 0xE0
588#define PSF_EVENT_MESSAGEBUFFER_RECEIVE 0xE1
589#define PSF_EVENT_MESSAGEBUFFER_RECEIVE_BLOCK 0xE2
590#define PSF_EVENT_MESSAGEBUFFER_RECEIVE_FAILED 0xE3
591#define PSF_EVENT_MESSAGEBUFFER_SEND_FROM_ISR 0xE4
592#define PSF_EVENT_MESSAGEBUFFER_SEND_FROM_ISR_FAILED 0xE5
593#define PSF_EVENT_MESSAGEBUFFER_RECEIVE_FROM_ISR 0xE6
594#define PSF_EVENT_MESSAGEBUFFER_RECEIVE_FROM_ISR_FAILED 0xE7
595#define PSF_EVENT_MESSAGEBUFFER_RESET 0xE8
597#define PSF_EVENT_MALLOC_FAILED 0xE9
598#define PSF_EVENT_FREE_FAILED 0xEA
600#define PSF_EVENT_UNUSED_STACK 0xEB
602#define PSF_EVENT_STATEMACHINE_STATE_CREATE 0xEC
603#define PSF_EVENT_STATEMACHINE_CREATE 0xED
604#define PSF_EVENT_STATEMACHINE_STATECHANGE 0xEE
606#define PSF_EVENT_INTERVAL_CHANNEL_CREATE 0xEF
607#define PSF_EVENT_INTERVAL_START 0xF0
609#define PSF_EVENT_EXTENSION_CREATE 0xF1
611#define PSF_EVENT_HEAP_CREATE 0xF2
613#define PSF_EVENT_COUNTER_CREATE 0xF3
614#define PSF_EVENT_COUNTER_CHANGE 0xF4
615#define PSF_EVENT_COUNTER_LIMIT_EXCEEDED 0xF5
617#define PSF_EVENT_MUTEX_TAKE_RECURSIVE_BLOCK 0xF6
619#define PSF_EVENT_INTERVAL_STOP 0xF7
620#define PSF_EVENT_INTERVAL_CHANNEL_SET_CREATE 0xF8
622#define PSF_EVENT_RUNNABLE_REGISTER 0xF9
623#define PSF_EVENT_RUNNABLE_START 0xFA
624#define PSF_EVENT_RUNNABLE_STOP 0xFB
626#define PSF_EVENT_DEPENDENCY_REGISTER 0xFC
628#define TRC_EVENT_LAST_ID (PSF_EVENT_DEPENDENCY_REGISTER)
634#undef traceINCREASE_TICK_COUNT
636#define traceINCREASE_TICK_COUNT( xCount ) { uint32_t uiTraceTickCount; xTraceTimestampGetOsTickCount(&uiTraceTickCount); xTraceTimestampSetOsTickCount(uiTraceTickCount + (xCount)); }
638#if (TRC_CFG_INCLUDE_OSTICK_EVENTS == 1)
640#define OS_TICK_EVENT(uxSchedulerSuspended, xTickCount) if ((uxSchedulerSuspended) == (unsigned portBASE_TYPE) pdFALSE) { prvTraceStoreEvent_Param(PSF_EVENT_NEW_TIME, xTickCount); }
644#define OS_TICK_EVENT(uxSchedulerSuspended, xTickCount)
649#undef traceTASK_INCREMENT_TICK
650#if TRC_CFG_ESP_IDF_VERSION >= TRC_ESP_IDF_VERSION_4_3_0
652#define traceTASK_INCREMENT_TICK( xTickCount ) \
653 if (uxSchedulerSuspended[xPortGetCoreID()] == ( unsigned portBASE_TYPE ) pdTRUE || xPendedTicks == 0) { xTraceTimestampSetOsTickCount((xTickCount) + 1); } \
654 OS_TICK_EVENT(uxSchedulerSuspended[xPortGetCoreID()], xTickCount + 1)
656#elif TRC_CFG_ESP_IDF_VERSION >= TRC_ESP_IDF_VERSION_4_0_0
658#define traceTASK_INCREMENT_TICK( xTickCount ) \
659 if (uxSchedulerSuspended[xPortGetCoreID()] == ( unsigned portBASE_TYPE ) pdTRUE || uxPendedTicks == 0) { xTraceTimestampSetOsTickCount((xTickCount) + 1); } \
660 OS_TICK_EVENT(uxSchedulerSuspended[xPortGetCoreID()], xTickCount + 1)
664#define traceTASK_INCREMENT_TICK( xTickCount ) \
665 if (uxSchedulerSuspended[xPortGetCoreID()] == ( unsigned portBASE_TYPE ) pdTRUE || uxMissedTicks == 0) { xTraceTimestampSetOsTickCount((xTickCount) + 1); } \
666 OS_TICK_EVENT(uxSchedulerSuspended[xPortGetCoreID()], xTickCount + 1)
671#undef traceTASK_SWITCHED_IN
672#define traceTASK_SWITCHED_IN() \
673 xTraceTaskSwitch(pxCurrentTCB[xPortGetCoreID()], pxCurrentTCB[xPortGetCoreID()]->uxPriority)
676#if (TRC_CFG_INCLUDE_READY_EVENTS == 1)
677#undef traceMOVED_TASK_TO_READY_STATE
678#define traceMOVED_TASK_TO_READY_STATE( pxTCB ) \
679 xTraceTaskReady(pxTCB);
682#undef traceTASK_CREATE
683#if TRC_CFG_ESP_IDF_VERSION >= TRC_ESP_IDF_VERSION_4_2_0
685#define traceTASK_CREATE(pxNewTCB) \
686 if ((pxNewTCB) != 0) \
688 xTraceTaskRegisterWithoutHandle((void*)(pxNewTCB), (pxNewTCB)->pcTaskName, (pxNewTCB)->uxPriority); \
692#define traceTASK_CREATE(pxNewTCB) \
695 xTraceTaskRegisterWithoutHandle((void*)pxNewTCB, (const char*)pcName, (uint32_t)uxPriority); \
700#undef traceTASK_CREATE_FAILED
701#define traceTASK_CREATE_FAILED() \
702 prvTraceStoreEvent_None(PSF_EVENT_TASK_CREATE_FAILED)
705#undef traceTASK_DELETE
706#define traceTASK_DELETE( pxTaskToDelete ) \
707 xTraceTaskUnregisterWithoutHandle(pxTaskToDelete, (pxTaskToDelete)->uxPriority)
709#if (TRC_CFG_SCHEDULING_ONLY == 0)
711#if (defined(configUSE_TICKLESS_IDLE) && configUSE_TICKLESS_IDLE != 0)
713#undef traceLOW_POWER_IDLE_BEGIN
714#define traceLOW_POWER_IDLE_BEGIN() \
715 prvTraceStoreEvent_Param(PSF_EVENT_LOWPOWER_BEGIN, xExpectedIdleTime)
717#undef traceLOW_POWER_IDLE_END
718#define traceLOW_POWER_IDLE_END() \
719 prvTraceStoreEvent_None(PSF_EVENT_LOWPOWER_END)
724#undef traceTASK_SUSPEND
725#define traceTASK_SUSPEND( pxTaskToSuspend ) \
726 prvTraceStoreEvent_Handle(PSF_EVENT_TASK_SUSPEND, pxTaskToSuspend)
729#undef traceTASK_DELAY
730#define traceTASK_DELAY() \
731 prvTraceStoreEvent_Param(PSF_EVENT_TASK_DELAY, xTicksToDelay)
734#undef traceTASK_DELAY_UNTIL
735#if TRC_CFG_ESP_IDF_VERSION < TRC_ESP_IDF_VERSION_5_1_0
736 #define traceTASK_DELAY_UNTIL() \
737 prvTraceStoreEvent_Param(PSF_EVENT_TASK_DELAY_UNTIL, 0)
739 #define traceTASK_DELAY_UNTIL(xTimeToDelay) \
740 prvTraceStoreEvent_Param(PSF_EVENT_TASK_DELAY_UNTIL, xTimeToDelay)
743#if (TRC_CFG_ESP_IDF_VERSION >= TRC_ESP_IDF_VERSION_4_3_0)
745#define traceQUEUE_CREATE_HELPER() \
746 case queueQUEUE_TYPE_MUTEX: \
747 xTraceObjectRegisterWithoutHandle(PSF_EVENT_MUTEX_CREATE, (void*)pxNewQueue, "", 0); \
749 case queueQUEUE_TYPE_RECURSIVE_MUTEX: \
750 xTraceObjectRegisterWithoutHandle(PSF_EVENT_MUTEX_RECURSIVE_CREATE, (void*)pxNewQueue, "", 0); \
754#define traceQUEUE_CREATE_HELPER()
759#undef traceQUEUE_CREATE
760#define traceQUEUE_CREATE( pxNewQueue )\
761 switch ((pxNewQueue)->ucQueueType) \
763 case queueQUEUE_TYPE_BASE: \
764 xTraceObjectRegisterWithoutHandle(PSF_EVENT_QUEUE_CREATE, (void*)(pxNewQueue), "", (uint32_t)uxQueueLength); \
766 case queueQUEUE_TYPE_BINARY_SEMAPHORE: \
767 xTraceObjectRegisterWithoutHandle(PSF_EVENT_SEMAPHORE_BINARY_CREATE, (void*)(pxNewQueue), "", 0); \
769 traceQUEUE_CREATE_HELPER() \
772#if (TRC_CFG_ESP_IDF_VERSION >= TRC_ESP_IDF_VERSION_4_3_0)
774#define traceQUEUE_CREATE_FAILED_HELPER() \
775 case queueQUEUE_TYPE_MUTEX: \
776 prvTraceStoreEvent_HandleParam(PSF_EVENT_MUTEX_CREATE_FAILED, 0, 0); \
778 case queueQUEUE_TYPE_RECURSIVE_MUTEX: \
779 prvTraceStoreEvent_HandleParam(PSF_EVENT_MUTEX_RECURSIVE_CREATE_FAILED, 0, 0); \
784#define traceQUEUE_CREATE_FAILED_HELPER()
789#undef traceQUEUE_CREATE_FAILED
790#define traceQUEUE_CREATE_FAILED( queueType ) \
793 case queueQUEUE_TYPE_BASE: \
794 prvTraceStoreEvent_HandleParam(PSF_EVENT_QUEUE_CREATE_FAILED, 0, uxQueueLength); \
796 case queueQUEUE_TYPE_BINARY_SEMAPHORE: \
797 prvTraceStoreEvent_HandleParam(PSF_EVENT_SEMAPHORE_BINARY_CREATE_FAILED, 0, 0); \
799 traceQUEUE_CREATE_FAILED_HELPER() \
802#undef traceQUEUE_DELETE
803#define traceQUEUE_DELETE( pxQueue ) \
804 switch ((pxQueue)->ucQueueType) \
806 case queueQUEUE_TYPE_BASE: \
807 xTraceObjectUnregisterWithoutHandle(PSF_EVENT_QUEUE_DELETE, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting); \
809 case queueQUEUE_TYPE_MUTEX: \
810 case queueQUEUE_TYPE_RECURSIVE_MUTEX: \
811 xTraceObjectUnregisterWithoutHandle(PSF_EVENT_MUTEX_DELETE, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting); \
813 case queueQUEUE_TYPE_COUNTING_SEMAPHORE: \
814 case queueQUEUE_TYPE_BINARY_SEMAPHORE: \
815 xTraceObjectUnregisterWithoutHandle(PSF_EVENT_SEMAPHORE_DELETE, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting); \
820#undef traceCREATE_COUNTING_SEMAPHORE
821#define traceCREATE_COUNTING_SEMAPHORE() \
822 xTraceObjectRegisterWithoutHandle(PSF_EVENT_SEMAPHORE_COUNTING_CREATE, (void*)xHandle, "", (uint32_t)uxMaxCount)
824#undef traceCREATE_COUNTING_SEMAPHORE_FAILED
825#define traceCREATE_COUNTING_SEMAPHORE_FAILED() \
826 prvTraceStoreEvent_HandleParam(PSF_EVENT_SEMAPHORE_COUNTING_CREATE_FAILED, 0, uxMaxCount);
830#if (TRC_CFG_ESP_IDF_VERSION < TRC_ESP_IDF_VERSION_4_3_0)
833#undef traceCREATE_MUTEX
834#define traceCREATE_MUTEX( pxNewQueue ) \
835 switch (pxNewQueue->ucQueueType) \
837 case queueQUEUE_TYPE_MUTEX: \
838 xTraceObjectRegisterWithoutHandle(PSF_EVENT_MUTEX_CREATE, (void*)(pxNewQueue), "", 0); \
840 case queueQUEUE_TYPE_RECURSIVE_MUTEX: \
841 xTraceObjectRegisterWithoutHandle(PSF_EVENT_MUTEX_RECURSIVE_CREATE, (void*)(pxNewQueue), "", 0); \
846#undef traceCREATE_MUTEX_FAILED
847#define traceCREATE_MUTEX_FAILED() \
848 prvTraceStoreEvent_HandleParam(PSF_EVENT_MUTEX_CREATE_FAILED, 0, 0)
852#undef traceGIVE_MUTEX_RECURSIVE_FAILED
853#define traceGIVE_MUTEX_RECURSIVE_FAILED( pxMutex ) \
854 prvTraceStoreEvent_Handle(PSF_EVENT_MUTEX_GIVE_RECURSIVE_FAILED, (void*)(pxMutex))
857#undef traceQUEUE_SEND
858#define traceQUEUE_SEND( pxQueue ) \
859 switch ((pxQueue)->ucQueueType) \
861 case queueQUEUE_TYPE_BASE: \
862 prvTraceStoreEvent_HandleParam(xCopyPosition == queueSEND_TO_BACK ? PSF_EVENT_QUEUE_SEND : PSF_EVENT_QUEUE_SEND_FRONT, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting + 1); \
864 case queueQUEUE_TYPE_BINARY_SEMAPHORE: \
865 case queueQUEUE_TYPE_COUNTING_SEMAPHORE: \
866 prvTraceStoreEvent_HandleParam(PSF_EVENT_SEMAPHORE_GIVE, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting + 1); \
868 case queueQUEUE_TYPE_MUTEX: \
869 prvTraceStoreEvent_Handle(PSF_EVENT_MUTEX_GIVE, (void*)(pxQueue)); \
871 case queueQUEUE_TYPE_RECURSIVE_MUTEX: \
872 prvTraceStoreEvent_Handle(PSF_EVENT_MUTEX_GIVE_RECURSIVE, (void*)(pxQueue)); \
876#undef traceQUEUE_SET_SEND
877#define traceQUEUE_SET_SEND( pxQueue ) \
878 prvTraceStoreEvent_HandleParam(PSF_EVENT_QUEUE_SEND, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting + 1)
881#undef traceQUEUE_SEND_FAILED
882#define traceQUEUE_SEND_FAILED( pxQueue ) \
883 switch ((pxQueue)->ucQueueType) \
885 case queueQUEUE_TYPE_BASE: \
886 prvTraceStoreEvent_HandleParam(xCopyPosition == queueSEND_TO_BACK ? PSF_EVENT_QUEUE_SEND_FAILED : PSF_EVENT_QUEUE_SEND_FRONT_FAILED, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting); \
888 case queueQUEUE_TYPE_BINARY_SEMAPHORE: \
889 case queueQUEUE_TYPE_COUNTING_SEMAPHORE: \
890 prvTraceStoreEvent_HandleParam(PSF_EVENT_SEMAPHORE_GIVE_FAILED, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting); \
892 case queueQUEUE_TYPE_MUTEX: \
893 case queueQUEUE_TYPE_RECURSIVE_MUTEX: \
894 prvTraceStoreEvent_Handle(PSF_EVENT_MUTEX_GIVE_FAILED, (void*)(pxQueue)); \
899#undef traceBLOCKING_ON_QUEUE_SEND
900#define traceBLOCKING_ON_QUEUE_SEND( pxQueue ) \
901 switch ((pxQueue)->ucQueueType) \
903 case queueQUEUE_TYPE_BASE: \
904 prvTraceStoreEvent_HandleParam(xCopyPosition == queueSEND_TO_BACK ? PSF_EVENT_QUEUE_SEND_BLOCK : PSF_EVENT_QUEUE_SEND_FRONT_BLOCK, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting); \
906 case queueQUEUE_TYPE_BINARY_SEMAPHORE: \
907 case queueQUEUE_TYPE_COUNTING_SEMAPHORE: \
908 prvTraceStoreEvent_HandleParam(PSF_EVENT_SEMAPHORE_GIVE_BLOCK, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting); \
910 case queueQUEUE_TYPE_MUTEX: \
911 case queueQUEUE_TYPE_RECURSIVE_MUTEX: \
912 prvTraceStoreEvent_Handle(PSF_EVENT_MUTEX_GIVE_BLOCK, (void*)(pxQueue)); \
917#undef traceQUEUE_SEND_FROM_ISR
918#define traceQUEUE_SEND_FROM_ISR( pxQueue ) \
919 switch ((pxQueue)->ucQueueType) \
921 case queueQUEUE_TYPE_BASE: \
922 prvTraceStoreEvent_HandleParam(xCopyPosition == queueSEND_TO_BACK ? PSF_EVENT_QUEUE_SEND_FROMISR : PSF_EVENT_QUEUE_SEND_FRONT_FROMISR, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting + 1); \
924 case queueQUEUE_TYPE_BINARY_SEMAPHORE: \
925 case queueQUEUE_TYPE_COUNTING_SEMAPHORE: \
926 prvTraceStoreEvent_HandleParam(PSF_EVENT_SEMAPHORE_GIVE_FROMISR, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting + 1); \
929#undef traceQUEUE_GIVE_FROM_ISR
930#define traceQUEUE_GIVE_FROM_ISR( pxQueue ) traceQUEUE_SEND_FROM_ISR(pxQueue)
933#undef traceQUEUE_SEND_FROM_ISR_FAILED
934#define traceQUEUE_SEND_FROM_ISR_FAILED( pxQueue ) \
935 switch ((pxQueue)->ucQueueType) \
937 case queueQUEUE_TYPE_BASE: \
938 prvTraceStoreEvent_HandleParam(xCopyPosition == queueSEND_TO_BACK ? PSF_EVENT_QUEUE_SEND_FROMISR_FAILED : PSF_EVENT_QUEUE_SEND_FRONT_FROMISR_FAILED, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting); \
940 case queueQUEUE_TYPE_BINARY_SEMAPHORE: \
941 case queueQUEUE_TYPE_COUNTING_SEMAPHORE: \
942 prvTraceStoreEvent_HandleParam(PSF_EVENT_SEMAPHORE_GIVE_FROMISR_FAILED, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting); \
945#undef traceQUEUE_GIVE_FROM_ISR_FAILED
946#define traceQUEUE_GIVE_FROM_ISR_FAILED( pxQueue ) traceQUEUE_SEND_FROM_ISR_FAILED(pxQueue)
949#undef traceQUEUE_RECEIVE
950#define traceQUEUE_RECEIVE( pxQueue ) \
951 switch ((pxQueue)->ucQueueType) \
953 case queueQUEUE_TYPE_BASE: \
954 if (isQueueReceiveHookActuallyPeek) \
956 prvTraceStoreEvent_HandleParamParam(PSF_EVENT_QUEUE_PEEK, (void*)(pxQueue), xTicksToWait, (pxQueue)->uxMessagesWaiting - 1); \
960 prvTraceStoreEvent_HandleParamParam(PSF_EVENT_QUEUE_RECEIVE, (void*)(pxQueue), xTicksToWait, (pxQueue)->uxMessagesWaiting - 1); \
963 case queueQUEUE_TYPE_BINARY_SEMAPHORE: \
964 case queueQUEUE_TYPE_COUNTING_SEMAPHORE: \
965 if (isQueueReceiveHookActuallyPeek) \
967 prvTraceStoreEvent_HandleParamParam(PSF_EVENT_SEMAPHORE_PEEK, (void*)(pxQueue), xTicksToWait, (pxQueue)->uxMessagesWaiting - 1); \
971 prvTraceStoreEvent_HandleParamParam(PSF_EVENT_SEMAPHORE_TAKE, (void*)(pxQueue), xTicksToWait, (pxQueue)->uxMessagesWaiting - 1); \
974 case queueQUEUE_TYPE_MUTEX: \
975 prvTraceStoreEvent_HandleParam(isQueueReceiveHookActuallyPeek ? PSF_EVENT_MUTEX_PEEK : PSF_EVENT_MUTEX_TAKE, (void*)(pxQueue), xTicksToWait); \
977 case queueQUEUE_TYPE_RECURSIVE_MUTEX: \
978 prvTraceStoreEvent_HandleParam(isQueueReceiveHookActuallyPeek ? PSF_EVENT_MUTEX_PEEK : PSF_EVENT_MUTEX_TAKE_RECURSIVE, (void*)(pxQueue), xTicksToWait); \
981#undef traceQUEUE_SEMAPHORE_RECEIVE
982#define traceQUEUE_SEMAPHORE_RECEIVE( pxQueue ) traceQUEUE_RECEIVE( pxQueue )
985#undef traceQUEUE_RECEIVE_FAILED
986#define traceQUEUE_RECEIVE_FAILED( pxQueue ) \
987 switch ((pxQueue)->ucQueueType) \
989 case queueQUEUE_TYPE_BASE: \
990 prvTraceStoreEvent_HandleParamParam(isQueueReceiveHookActuallyPeek ? PSF_EVENT_QUEUE_PEEK_FAILED : PSF_EVENT_QUEUE_RECEIVE_FAILED, (void*)(pxQueue), xTicksToWait, (pxQueue)->uxMessagesWaiting); \
992 case queueQUEUE_TYPE_BINARY_SEMAPHORE: \
993 case queueQUEUE_TYPE_COUNTING_SEMAPHORE: \
994 prvTraceStoreEvent_HandleParamParam(isQueueReceiveHookActuallyPeek ? PSF_EVENT_SEMAPHORE_PEEK_FAILED : PSF_EVENT_SEMAPHORE_TAKE_FAILED, (void*)(pxQueue), xTicksToWait, (pxQueue)->uxMessagesWaiting); \
996 case queueQUEUE_TYPE_MUTEX: \
997 prvTraceStoreEvent_HandleParam(isQueueReceiveHookActuallyPeek ? PSF_EVENT_MUTEX_PEEK_FAILED : PSF_EVENT_MUTEX_TAKE_FAILED, (void*)(pxQueue), xTicksToWait); \
999 case queueQUEUE_TYPE_RECURSIVE_MUTEX: \
1000 prvTraceStoreEvent_HandleParam(isQueueReceiveHookActuallyPeek ? PSF_EVENT_MUTEX_PEEK_FAILED : PSF_EVENT_MUTEX_TAKE_RECURSIVE_FAILED, (void*)(pxQueue), xTicksToWait); \
1005#undef traceBLOCKING_ON_QUEUE_RECEIVE
1006#define traceBLOCKING_ON_QUEUE_RECEIVE( pxQueue ) \
1007 switch ((pxQueue)->ucQueueType) \
1009 case queueQUEUE_TYPE_BASE: \
1010 prvTraceStoreEvent_HandleParamParam(isQueueReceiveHookActuallyPeek ? PSF_EVENT_QUEUE_PEEK_BLOCK : PSF_EVENT_QUEUE_RECEIVE_BLOCK, (void*)(pxQueue), xTicksToWait, (pxQueue)->uxMessagesWaiting); \
1012 case queueQUEUE_TYPE_BINARY_SEMAPHORE: \
1013 case queueQUEUE_TYPE_COUNTING_SEMAPHORE: \
1014 prvTraceStoreEvent_HandleParamParam(isQueueReceiveHookActuallyPeek ? PSF_EVENT_SEMAPHORE_PEEK_BLOCK : PSF_EVENT_SEMAPHORE_TAKE_BLOCK, (void*)(pxQueue), xTicksToWait, (pxQueue)->uxMessagesWaiting); \
1016 case queueQUEUE_TYPE_MUTEX: \
1017 prvTraceStoreEvent_HandleParam(isQueueReceiveHookActuallyPeek ? PSF_EVENT_MUTEX_PEEK_BLOCK : PSF_EVENT_MUTEX_TAKE_BLOCK, (void*)(pxQueue), xTicksToWait); \
1019 case queueQUEUE_TYPE_RECURSIVE_MUTEX: \
1020 prvTraceStoreEvent_HandleParam(isQueueReceiveHookActuallyPeek ? PSF_EVENT_MUTEX_PEEK_BLOCK : PSF_EVENT_MUTEX_TAKE_RECURSIVE_BLOCK, (void*)(pxQueue), xTicksToWait); \
1024#if (TRC_CFG_ESP_IDF_VERSION > TRC_ESP_IDF_VERSION_4_3_0)
1027#undef traceQUEUE_PEEK_FAILED
1028#define traceQUEUE_PEEK_FAILED( pxQueue ) \
1029 switch ((pxQueue)->ucQueueType) \
1031 case queueQUEUE_TYPE_BASE: \
1032 prvTraceStoreEvent_HandleParamParam(PSF_EVENT_QUEUE_PEEK_FAILED, (void*)(pxQueue), xTicksToWait, (pxQueue)->uxMessagesWaiting); \
1034 case queueQUEUE_TYPE_BINARY_SEMAPHORE: \
1035 case queueQUEUE_TYPE_COUNTING_SEMAPHORE: \
1036 prvTraceStoreEvent_HandleParamParam(PSF_EVENT_SEMAPHORE_PEEK_FAILED, (void*)(pxQueue), xTicksToWait, (pxQueue)->uxMessagesWaiting); \
1038 case queueQUEUE_TYPE_MUTEX: \
1039 case queueQUEUE_TYPE_RECURSIVE_MUTEX: \
1040 prvTraceStoreEvent_HandleParam(PSF_EVENT_MUTEX_PEEK_FAILED, (void*)(pxQueue), xTicksToWait); \
1045#undef traceBLOCKING_ON_QUEUE_PEEK
1046#define traceBLOCKING_ON_QUEUE_PEEK( pxQueue ) \
1047 switch ((pxQueue)->ucQueueType) \
1049 case queueQUEUE_TYPE_BASE: \
1050 prvTraceStoreEvent_HandleParamParam(PSF_EVENT_QUEUE_PEEK_BLOCK, (void*)(pxQueue), xTicksToWait, (pxQueue)->uxMessagesWaiting); \
1052 case queueQUEUE_TYPE_BINARY_SEMAPHORE: \
1053 case queueQUEUE_TYPE_COUNTING_SEMAPHORE: \
1054 prvTraceStoreEvent_HandleParamParam(PSF_EVENT_SEMAPHORE_PEEK_BLOCK, (void*)(pxQueue), xTicksToWait, (pxQueue)->uxMessagesWaiting); \
1056 case queueQUEUE_TYPE_MUTEX: \
1057 case queueQUEUE_TYPE_RECURSIVE_MUTEX: \
1058 prvTraceStoreEvent_HandleParam(PSF_EVENT_MUTEX_PEEK_BLOCK, (void*)(pxQueue), xTicksToWait); \
1065#undef traceQUEUE_RECEIVE_FROM_ISR
1066#define traceQUEUE_RECEIVE_FROM_ISR( pxQueue ) \
1067 switch ((pxQueue)->ucQueueType) \
1069 case queueQUEUE_TYPE_BASE: \
1070 prvTraceStoreEvent_HandleParam(PSF_EVENT_QUEUE_RECEIVE_FROMISR, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting - 1); \
1072 case queueQUEUE_TYPE_BINARY_SEMAPHORE: \
1073 case queueQUEUE_TYPE_COUNTING_SEMAPHORE: \
1074 prvTraceStoreEvent_HandleParam(PSF_EVENT_SEMAPHORE_TAKE_FROMISR, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting - 1); \
1079#undef traceQUEUE_RECEIVE_FROM_ISR_FAILED
1080#define traceQUEUE_RECEIVE_FROM_ISR_FAILED( pxQueue ) \
1081 switch ((pxQueue)->ucQueueType) \
1083 case queueQUEUE_TYPE_BASE: \
1084 prvTraceStoreEvent_HandleParam(PSF_EVENT_QUEUE_RECEIVE_FROMISR_FAILED, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting); \
1086 case queueQUEUE_TYPE_BINARY_SEMAPHORE: \
1087 case queueQUEUE_TYPE_COUNTING_SEMAPHORE: \
1088 prvTraceStoreEvent_HandleParam(PSF_EVENT_SEMAPHORE_TAKE_FROMISR_FAILED, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting); \
1093#undef traceQUEUE_PEEK
1094#define traceQUEUE_PEEK( pxQueue ) \
1095 switch ((pxQueue)->ucQueueType) \
1097 case queueQUEUE_TYPE_BASE: \
1098 prvTraceStoreEvent_HandleParamParam(PSF_EVENT_QUEUE_PEEK, (void*)(pxQueue), xTicksToWait, (pxQueue)->uxMessagesWaiting); \
1100 case queueQUEUE_TYPE_BINARY_SEMAPHORE: \
1101 case queueQUEUE_TYPE_COUNTING_SEMAPHORE: \
1102 prvTraceStoreEvent_HandleParamParam(PSF_EVENT_SEMAPHORE_PEEK, (void*)(pxQueue), xTicksToWait, (pxQueue)->uxMessagesWaiting); \
1104 case queueQUEUE_TYPE_MUTEX: \
1105 case queueQUEUE_TYPE_RECURSIVE_MUTEX: \
1106 prvTraceStoreEvent_HandleParam(PSF_EVENT_MUTEX_PEEK, (void*)(pxQueue), xTicksToWait); \
1111#undef traceTASK_PRIORITY_SET
1112#define traceTASK_PRIORITY_SET( pxTask, uxNewPriority ) \
1113 xTraceTaskSetPriorityWithoutHandle(pxTask, uxNewPriority)
1116#undef traceTASK_PRIORITY_INHERIT
1117#define traceTASK_PRIORITY_INHERIT( pxTask, uxNewPriority ) \
1118 prvTraceStoreEvent_HandleParam(PSF_EVENT_TASK_PRIO_INHERIT, (void*)(pxTask), uxNewPriority)
1121#undef traceTASK_PRIORITY_DISINHERIT
1122#define traceTASK_PRIORITY_DISINHERIT( pxTask, uxNewPriority ) \
1123 prvTraceStoreEvent_HandleParam(PSF_EVENT_TASK_PRIO_DISINHERIT, (void*)(pxTask), uxNewPriority)
1126#undef traceTASK_RESUME
1127#define traceTASK_RESUME( pxTaskToResume ) \
1128 prvTraceStoreEvent_Handle(PSF_EVENT_TASK_RESUME, (void*)(pxTaskToResume))
1131#undef traceTASK_RESUME_FROM_ISR
1132#define traceTASK_RESUME_FROM_ISR( pxTaskToResume ) \
1133 prvTraceStoreEvent_Handle(PSF_EVENT_TASK_RESUME_FROMISR, (void*)(pxTaskToResume))
1135#if (TRC_CFG_INCLUDE_MEMMANG_EVENTS == 1)
1138#define traceMALLOC( pvAddress, uiSize ) \
1139 if (xTraceIsRecorderEnabled()) \
1141 xTraceHeapAlloc(xTraceKernelPortGetSystemHeapHandle(), pvAddress, uiSize); \
1145#define traceFREE( pvAddress, uiSize ) \
1146 if (xTraceIsRecorderEnabled()) \
1148 xTraceHeapFree(xTraceKernelPortGetSystemHeapHandle(), pvAddress, uiSize); \
1153#if (TRC_CFG_INCLUDE_TIMER_EVENTS == 1)
1156#undef traceTIMER_CREATE
1157#define traceTIMER_CREATE(tmr) \
1158 xTraceObjectRegisterWithoutHandle(PSF_EVENT_TIMER_CREATE, (void*)(tmr), (const char*)(tmr)->pcTimerName, (uint32_t)(tmr)->xTimerPeriodInTicks)
1160#undef traceTIMER_CREATE_FAILED
1161#define traceTIMER_CREATE_FAILED() \
1162 prvTraceStoreEvent_None(PSF_EVENT_TIMER_CREATE_FAILED);
1164#if (TRC_CFG_ESP_IDF_VERSION >= TRC_ESP_IDF_VERSION_4_0_0)
1166#define traceTIMER_COMMAND_SEND_8_0_CASES(tmr) \
1167 case tmrCOMMAND_RESET: \
1168 prvTraceStoreEvent_HandleParam((xReturn == pdPASS) ? PSF_EVENT_TIMER_RESET : PSF_EVENT_TIMER_RESET_FAILED, (void*)(tmr), xOptionalValue); \
1170 case tmrCOMMAND_START_FROM_ISR: \
1171 prvTraceStoreEvent_HandleParam((xReturn == pdPASS) ? PSF_EVENT_TIMER_START_FROMISR : PSF_EVENT_TIMER_START_FROMISR_FAILED, (void*)(tmr), xOptionalValue); \
1173 case tmrCOMMAND_RESET_FROM_ISR: \
1174 prvTraceStoreEvent_HandleParam((xReturn == pdPASS) ? PSF_EVENT_TIMER_RESET_FROMISR : PSF_EVENT_TIMER_RESET_FROMISR_FAILED, (void*)(tmr), xOptionalValue); \
1176 case tmrCOMMAND_STOP_FROM_ISR: \
1177 prvTraceStoreEvent_HandleParam((xReturn == pdPASS) ? PSF_EVENT_TIMER_STOP_FROMISR : PSF_EVENT_TIMER_STOP_FROMISR_FAILED, (void*)(tmr), xOptionalValue); \
1179 case tmrCOMMAND_CHANGE_PERIOD_FROM_ISR: \
1180 prvTraceStoreEvent_HandleParam((xReturn == pdPASS) ? PSF_EVENT_TIMER_CHANGEPERIOD_FROMISR : PSF_EVENT_TIMER_CHANGEPERIOD_FROMISR_FAILED, (void*)(tmr), xOptionalValue); \
1184#define traceTIMER_COMMAND_SEND_8_0_CASES(tmr)
1189#undef traceTIMER_COMMAND_SEND
1190#define traceTIMER_COMMAND_SEND(tmr, xCommandID, xOptionalValue, xReturn) \
1191 switch(xCommandID) \
1193 case tmrCOMMAND_START: \
1194 prvTraceStoreEvent_Handle(((xReturn) == pdPASS) ? PSF_EVENT_TIMER_START : PSF_EVENT_TIMER_START_FAILED, (void*)(tmr)); \
1196 case tmrCOMMAND_STOP: \
1197 prvTraceStoreEvent_Handle(((xReturn) == pdPASS) ? PSF_EVENT_TIMER_STOP : PSF_EVENT_TIMER_STOP_FAILED, (void*)(tmr)); \
1199 case tmrCOMMAND_CHANGE_PERIOD: \
1200 prvTraceStoreEvent_HandleParam(((xReturn) == pdPASS) ? PSF_EVENT_TIMER_CHANGEPERIOD : PSF_EVENT_TIMER_CHANGEPERIOD_FAILED, (void*)(tmr), xOptionalValue); \
1202 case tmrCOMMAND_DELETE: \
1203 xTraceObjectUnregisterWithoutHandle(((xReturn) == pdPASS) ? PSF_EVENT_TIMER_DELETE : PSF_EVENT_TIMER_DELETE_FAILED, (void*)(tmr), 0); \
1205 traceTIMER_COMMAND_SEND_8_0_CASES(tmr) \
1208#undef traceTIMER_EXPIRED
1209#define traceTIMER_EXPIRED(tmr) \
1210 prvTraceStoreEvent_HandleParam(PSF_EVENT_TIMER_EXPIRED, (void*)(tmr), (uint32_t)((tmr)->pxCallbackFunction))
1215#if (TRC_CFG_INCLUDE_PEND_FUNC_CALL_EVENTS == 1)
1217#undef tracePEND_FUNC_CALL
1218#define tracePEND_FUNC_CALL(func, arg1, arg2, ret) \
1219 prvTraceStoreEvent_Param(((ret) == pdPASS) ? PSF_EVENT_TIMER_PENDFUNCCALL : PSF_EVENT_TIMER_PENDFUNCCALL_FAILED, (uint32_t)(func))
1221#undef tracePEND_FUNC_CALL_FROM_ISR
1222#define tracePEND_FUNC_CALL_FROM_ISR(func, arg1, arg2, ret) \
1223 prvTraceStoreEvent_Param(((ret) == pdPASS) ? PSF_EVENT_TIMER_PENDFUNCCALL_FROMISR : PSF_EVENT_TIMER_PENDFUNCCALL_FROMISR_FAILED, (uint32_t)(func))
1227#if (TRC_CFG_INCLUDE_EVENT_GROUP_EVENTS == 1)
1229#undef traceEVENT_GROUP_CREATE
1230#define traceEVENT_GROUP_CREATE(eg) \
1231 xTraceObjectRegisterWithoutHandle(PSF_EVENT_EVENTGROUP_CREATE, (void*)(eg), 0, (uint32_t)(eg)->uxEventBits)
1233#undef traceEVENT_GROUP_DELETE
1234#define traceEVENT_GROUP_DELETE(eg) \
1235 xTraceObjectUnregisterWithoutHandle(PSF_EVENT_EVENTGROUP_DELETE, (void*)(eg), (uint32_t)(eg)->uxEventBits)
1237#undef traceEVENT_GROUP_CREATE_FAILED
1238#define traceEVENT_GROUP_CREATE_FAILED() \
1239 prvTraceStoreEvent_None(PSF_EVENT_EVENTGROUP_CREATE_FAILED)
1241#undef traceEVENT_GROUP_SYNC_BLOCK
1242#define traceEVENT_GROUP_SYNC_BLOCK(eg, bitsToSet, bitsToWaitFor) \
1243 prvTraceStoreEvent_HandleParam(PSF_EVENT_EVENTGROUP_SYNC_BLOCK, (void*)(eg), bitsToWaitFor)
1245#undef traceEVENT_GROUP_SYNC_END
1246#define traceEVENT_GROUP_SYNC_END(eg, bitsToSet, bitsToWaitFor, wasTimeout) \
1247 prvTraceStoreEvent_HandleParam(((wasTimeout) != pdTRUE) ? PSF_EVENT_EVENTGROUP_SYNC : PSF_EVENT_EVENTGROUP_SYNC_FAILED, (void*)(eg), bitsToWaitFor)
1249#undef traceEVENT_GROUP_WAIT_BITS_BLOCK
1250#define traceEVENT_GROUP_WAIT_BITS_BLOCK(eg, bitsToWaitFor) \
1251 prvTraceStoreEvent_HandleParam(PSF_EVENT_EVENTGROUP_WAITBITS_BLOCK, (void*)(eg), bitsToWaitFor)
1253#undef traceEVENT_GROUP_WAIT_BITS_END
1254#define traceEVENT_GROUP_WAIT_BITS_END(eg, bitsToWaitFor, wasTimeout) \
1255 prvTraceStoreEvent_HandleParam(((wasTimeout) != pdTRUE) ? PSF_EVENT_EVENTGROUP_WAITBITS : PSF_EVENT_EVENTGROUP_WAITBITS_FAILED, (void*)(eg), bitsToWaitFor)
1257#undef traceEVENT_GROUP_CLEAR_BITS
1258#define traceEVENT_GROUP_CLEAR_BITS(eg, bitsToClear) \
1259 prvTraceStoreEvent_HandleParam(PSF_EVENT_EVENTGROUP_CLEARBITS, (void*)(eg), bitsToClear)
1261#undef traceEVENT_GROUP_CLEAR_BITS_FROM_ISR
1262#define traceEVENT_GROUP_CLEAR_BITS_FROM_ISR(eg, bitsToClear) \
1263 prvTraceStoreEvent_HandleParam(PSF_EVENT_EVENTGROUP_CLEARBITS_FROMISR, (void*)(eg), bitsToClear)
1265#undef traceEVENT_GROUP_SET_BITS
1266#define traceEVENT_GROUP_SET_BITS(eg, bitsToSet) \
1267 prvTraceStoreEvent_HandleParam(PSF_EVENT_EVENTGROUP_SETBITS, (void*)(eg), bitsToSet)
1269#undef traceEVENT_GROUP_SET_BITS_FROM_ISR
1270#define traceEVENT_GROUP_SET_BITS_FROM_ISR(eg, bitsToSet) \
1271 prvTraceStoreEvent_HandleParam(PSF_EVENT_EVENTGROUP_SETBITS_FROMISR, (void*)(eg), bitsToSet)
1275#undef traceTASK_NOTIFY
1276#if (TRC_CFG_ESP_IDF_VERSION > TRC_ESP_IDF_VERSION_4_3_0)
1278#define traceTASK_NOTIFY(index) \
1279 prvTraceStoreEvent_Handle(PSF_EVENT_TASK_NOTIFY, (void*)xTaskToNotify)
1283#define traceTASK_NOTIFY() \
1284 prvTraceStoreEvent_Handle(PSF_EVENT_TASK_NOTIFY, (void*)xTaskToNotify)
1288#undef traceTASK_NOTIFY_FROM_ISR
1289#if (TRC_CFG_ESP_IDF_VERSION > TRC_ESP_IDF_VERSION_4_3_0)
1291#define traceTASK_NOTIFY_FROM_ISR(index) \
1292 prvTraceStoreEvent_Handle(PSF_EVENT_TASK_NOTIFY_FROM_ISR, (void*)xTaskToNotify)
1296#define traceTASK_NOTIFY_FROM_ISR() \
1297 prvTraceStoreEvent_Handle(PSF_EVENT_TASK_NOTIFY_FROM_ISR, (void*)xTaskToNotify)
1302#undef traceTASK_NOTIFY_GIVE_FROM_ISR
1303#define traceTASK_NOTIFY_GIVE_FROM_ISR traceTASK_NOTIFY_FROM_ISR
1305#undef traceTASK_NOTIFY_WAIT
1306#if (TRC_CFG_ESP_IDF_VERSION > TRC_ESP_IDF_VERSION_4_3_0)
1308#define traceTASK_NOTIFY_WAIT(index) \
1309 prvTraceStoreEvent_HandleParam(pxCurrentTCB[xPortGetCoreID()]->ucNotifyState[index] == taskNOTIFICATION_RECEIVED ? PSF_EVENT_TASK_NOTIFY_WAIT : PSF_EVENT_TASK_NOTIFY_WAIT_FAILED, (void*)pxCurrentTCB[xPortGetCoreID()], xTicksToWait)
1311#elif (TRC_CFG_ESP_IDF_VERSION >= TRC_ESP_IDF_VERSION_4_3_0)
1313#define traceTASK_NOTIFY_WAIT() \
1314 prvTraceStoreEvent_HandleParam(pxCurrentTCB[xPortGetCoreID()]->ucNotifyState == taskNOTIFICATION_RECEIVED ? PSF_EVENT_TASK_NOTIFY_WAIT : PSF_EVENT_TASK_NOTIFY_WAIT_FAILED, (void*)pxCurrentTCB, xTicksToWait)
1318#define traceTASK_NOTIFY_WAIT() \
1319 prvTraceStoreEvent_HandleParam(pxCurrentTCB[xPortGetCoreID()]->eNotifyState == eNotified ? PSF_EVENT_TASK_NOTIFY_WAIT : PSF_EVENT_TASK_NOTIFY_WAIT_FAILED, (void*)pxCurrentTCB, xTicksToWait)
1324#undef traceTASK_NOTIFY_TAKE
1325#define traceTASK_NOTIFY_TAKE traceTASK_NOTIFY_WAIT
1327#undef traceTASK_NOTIFY_WAIT_BLOCK
1328#if (TRC_CFG_ESP_IDF_VERSION > TRC_ESP_IDF_VERSION_4_3_0)
1330#define traceTASK_NOTIFY_WAIT_BLOCK(index) \
1331 prvTraceStoreEvent_HandleParam(PSF_EVENT_TASK_NOTIFY_WAIT_BLOCK, (void*)pxCurrentTCB[xPortGetCoreID()], xTicksToWait)
1335#define traceTASK_NOTIFY_WAIT_BLOCK() \
1336 prvTraceStoreEvent_HandleParam(PSF_EVENT_TASK_NOTIFY_WAIT_BLOCK, (void*)pxCurrentTCB[xPortGetCoreID()], xTicksToWait)
1341#undef traceTASK_NOTIFY_TAKE_BLOCK
1342#define traceTASK_NOTIFY_TAKE_BLOCK traceTASK_NOTIFY_WAIT_BLOCK
1344#undef traceQUEUE_REGISTRY_ADD
1345#define traceQUEUE_REGISTRY_ADD(object, name) \
1346 xTraceObjectSetNameWithoutHandle(object, (const char*)(name));
1348#if (TRC_CFG_INCLUDE_STREAM_BUFFER_EVENTS == 1)
1350#undef traceSTREAM_BUFFER_CREATE
1351#define traceSTREAM_BUFFER_CREATE( pxStreamBuffer, xIsMessageBuffer ) \
1352 xTraceObjectRegisterWithoutHandle((xIsMessageBuffer) == 1 ? PSF_EVENT_MESSAGEBUFFER_CREATE : PSF_EVENT_STREAMBUFFER_CREATE, (void*)(pxStreamBuffer), "", (uint32_t)xBufferSizeBytes)
1354#undef traceSTREAM_BUFFER_CREATE_FAILED
1355#define traceSTREAM_BUFFER_CREATE_FAILED( xIsMessageBuffer ) \
1356 prvTraceStoreEvent_HandleParam((xIsMessageBuffer) == 1 ? PSF_EVENT_MESSAGEBUFFER_CREATE_FAILED : PSF_EVENT_STREAMBUFFER_CREATE_FAILED, 0 , xBufferSizeBytes)
1358#undef traceSTREAM_BUFFER_CREATE_STATIC_FAILED
1359#define traceSTREAM_BUFFER_CREATE_STATIC_FAILED( xReturn, xIsMessageBuffer ) \
1360 traceSTREAM_BUFFER_CREATE_FAILED( xIsMessageBuffer )
1362#undef traceSTREAM_BUFFER_DELETE
1363#define traceSTREAM_BUFFER_DELETE( xStreamBuffer ) \
1364 xTraceObjectUnregisterWithoutHandle(prvGetStreamBufferType(xStreamBuffer) > 0 ? PSF_EVENT_MESSAGEBUFFER_DELETE : PSF_EVENT_STREAMBUFFER_DELETE, (void*)(xStreamBuffer), prvBytesInBuffer(xStreamBuffer));
1366#undef traceSTREAM_BUFFER_RESET
1367#define traceSTREAM_BUFFER_RESET( xStreamBuffer ) \
1368 prvTraceStoreEvent_HandleParam(prvGetStreamBufferType(xStreamBuffer) > 0 ? PSF_EVENT_MESSAGEBUFFER_RESET : PSF_EVENT_STREAMBUFFER_RESET, (void*)(xStreamBuffer), 0)
1370#undef traceSTREAM_BUFFER_SEND
1371#define traceSTREAM_BUFFER_SEND( xStreamBuffer, xReturn ) \
1372 prvTraceStoreEvent_HandleParam(prvGetStreamBufferType(xStreamBuffer) > 0 ? PSF_EVENT_MESSAGEBUFFER_SEND : PSF_EVENT_STREAMBUFFER_SEND, (void*)(xStreamBuffer), prvBytesInBuffer(xStreamBuffer))
1374#undef traceBLOCKING_ON_STREAM_BUFFER_SEND
1375#define traceBLOCKING_ON_STREAM_BUFFER_SEND( xStreamBuffer ) \
1376 prvTraceStoreEvent_Handle(prvGetStreamBufferType(xStreamBuffer) > 0 ? PSF_EVENT_MESSAGEBUFFER_SEND_BLOCK : PSF_EVENT_STREAMBUFFER_SEND_BLOCK, (void*)(xStreamBuffer))
1378#undef traceSTREAM_BUFFER_SEND_FAILED
1379#define traceSTREAM_BUFFER_SEND_FAILED( xStreamBuffer ) \
1380 prvTraceStoreEvent_Handle(prvGetStreamBufferType(xStreamBuffer) > 0 ? PSF_EVENT_MESSAGEBUFFER_SEND_FAILED : PSF_EVENT_STREAMBUFFER_SEND_FAILED, (void*)(xStreamBuffer))
1382#undef traceSTREAM_BUFFER_RECEIVE
1383#define traceSTREAM_BUFFER_RECEIVE( xStreamBuffer, xReceivedLength ) \
1384 prvTraceStoreEvent_HandleParam(prvGetStreamBufferType(xStreamBuffer) > 0 ? PSF_EVENT_MESSAGEBUFFER_RECEIVE: PSF_EVENT_STREAMBUFFER_RECEIVE, (void*)(xStreamBuffer), prvBytesInBuffer(xStreamBuffer))
1386#undef traceBLOCKING_ON_STREAM_BUFFER_RECEIVE
1387#define traceBLOCKING_ON_STREAM_BUFFER_RECEIVE( xStreamBuffer ) \
1388 prvTraceStoreEvent_Handle(prvGetStreamBufferType(xStreamBuffer) > 0 ? PSF_EVENT_MESSAGEBUFFER_RECEIVE_BLOCK: PSF_EVENT_STREAMBUFFER_RECEIVE_BLOCK, (void*)(xStreamBuffer))
1390#undef traceSTREAM_BUFFER_RECEIVE_FAILED
1391#define traceSTREAM_BUFFER_RECEIVE_FAILED( xStreamBuffer ) \
1392 prvTraceStoreEvent_Handle(prvGetStreamBufferType(xStreamBuffer) > 0 ? PSF_EVENT_MESSAGEBUFFER_RECEIVE_FAILED: PSF_EVENT_STREAMBUFFER_RECEIVE_FAILED, (void*)(xStreamBuffer))
1394#undef traceSTREAM_BUFFER_SEND_FROM_ISR
1395#define traceSTREAM_BUFFER_SEND_FROM_ISR( xStreamBuffer, xReturn ) \
1396 if ( (xReturn) > ( size_t ) 0 ) \
1398 prvTraceStoreEvent_HandleParam(prvGetStreamBufferType(xStreamBuffer) > 0 ? PSF_EVENT_MESSAGEBUFFER_SEND_FROM_ISR : PSF_EVENT_STREAMBUFFER_SEND_FROM_ISR, (void*)(xStreamBuffer), prvBytesInBuffer(xStreamBuffer)); \
1402 prvTraceStoreEvent_Handle(prvGetStreamBufferType(xStreamBuffer) > 0 ? PSF_EVENT_MESSAGEBUFFER_SEND_FROM_ISR_FAILED : PSF_EVENT_STREAMBUFFER_SEND_FROM_ISR_FAILED, (void*)(xStreamBuffer)); \
1405#undef traceSTREAM_BUFFER_RECEIVE_FROM_ISR
1406#define traceSTREAM_BUFFER_RECEIVE_FROM_ISR( xStreamBuffer, xReceivedLength ) \
1407 if ( (xReceivedLength) > ( size_t ) 0 ) \
1409 prvTraceStoreEvent_HandleParam(prvGetStreamBufferType(xStreamBuffer) > 0 ? PSF_EVENT_MESSAGEBUFFER_RECEIVE_FROM_ISR : PSF_EVENT_STREAMBUFFER_RECEIVE_FROM_ISR, (void*)(xStreamBuffer), prvBytesInBuffer(xStreamBuffer)); \
1413 prvTraceStoreEvent_Handle(prvGetStreamBufferType(xStreamBuffer) > 0 ? PSF_EVENT_MESSAGEBUFFER_RECEIVE_FROM_ISR_FAILED : PSF_EVENT_STREAMBUFFER_RECEIVE_FROM_ISR_FAILED, (void*)(xStreamBuffer)); \
1425#define vTraceSetQueueName(object, name)
1426#define vTraceSetSemaphoreName(object, name)
1427#define vTraceSetMutexName(object, name)
1428#define vTraceSetEventGroupName(object, name)
1429#define vTraceSetStreamBufferName(object, name)
1430#define vTraceSetMessageBufferName(object, name)
A structure representing the kernel port buffer.
Definition: trcKernelPort.h:73