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
38#define TRC_ESP_IDF_VERSION_5_3_0 530
39#define TRC_ESP_IDF_VERSION_5_4_0 540
41#if ESP_IDF_VERSION_MAJOR == 4 && ESP_IDF_VERSION_MINOR == 0
42#define TRC_CFG_ESP_IDF_VERSION TRC_ESP_IDF_VERSION_4_0_0
43#elif ESP_IDF_VERSION_MAJOR == 4 && ESP_IDF_VERSION_MINOR == 1
44#define TRC_CFG_ESP_IDF_VERSION TRC_ESP_IDF_VERSION_4_1_0
45#elif ESP_IDF_VERSION_MAJOR == 4 && ESP_IDF_VERSION_MINOR == 2
46#define TRC_CFG_ESP_IDF_VERSION TRC_ESP_IDF_VERSION_4_2_0
47#elif ESP_IDF_VERSION_MAJOR == 4 && ESP_IDF_VERSION_MINOR == 3
48#define TRC_CFG_ESP_IDF_VERSION TRC_ESP_IDF_VERSION_4_3_0
49#elif ESP_IDF_VERSION_MAJOR == 4 && ESP_IDF_VERSION_MINOR == 4
50#define TRC_CFG_ESP_IDF_VERSION TRC_ESP_IDF_VERSION_4_4_0
51#elif ESP_IDF_VERSION_MAJOR == 4 && ESP_IDF_VERSION_MINOR == 5
52#define TRC_CFG_ESP_IDF_VERSION TRC_ESP_IDF_VERSION_4_5_0
53#elif ESP_IDF_VERSION_MAJOR == 5 && ESP_IDF_VERSION_MINOR == 0
54#define TRC_CFG_ESP_IDF_VERSION TRC_ESP_IDF_VERSION_5_0_0
55#elif ESP_IDF_VERSION_MAJOR == 5 && ESP_IDF_VERSION_MINOR == 1
56#define TRC_CFG_ESP_IDF_VERSION TRC_ESP_IDF_VERSION_5_1_0
57#elif ESP_IDF_VERSION_MAJOR == 5 && ESP_IDF_VERSION_MINOR == 2
58#define TRC_CFG_ESP_IDF_VERSION TRC_ESP_IDF_VERSION_5_2_0
59#elif ESP_IDF_VERSION_MAJOR == 5 && ESP_IDF_VERSION_MINOR == 3
60#define TRC_CFG_ESP_IDF_VERSION TRC_ESP_IDF_VERSION_5_3_0
61#elif ESP_IDF_VERSION_MAJOR == 5 && ESP_IDF_VERSION_MINOR == 4
62#define TRC_CFG_ESP_IDF_VERSION TRC_ESP_IDF_VERSION_5_4_0
63#elif ESP_IDF_VERSION_MAJOR == 5 && ESP_IDF_VERSION_MINOR >= 5
65#define TRC_CFG_ESP_IDF_VERSION TRC_ESP_IDF_VERSION_5_4_0
67#define TRC_CFG_ESP_IDF_VERSION TRC_ESP_IDF_VERSION_NOT_SET
70#if (TRC_CFG_ESP_IDF_VERSION >= TRC_ESP_IDF_VERSION_4_3_0)
71#define prvGetStreamBufferType(x) ((( StreamBuffer_t * )x )->ucFlags & sbFLAGS_IS_MESSAGE_BUFFER)
73#define prvGetStreamBufferType(x) 0
76#define STRING_CAST(x) x
77#define TraceKernelPortTickType_t TickType_t
78#define TraceKernelPortTaskHandle_t TaskHandle_t
80#if !CONFIG_FREERTOS_UNICORE
81#undef TRC_CFG_GET_CURRENT_CORE
82#define TRC_CFG_GET_CURRENT_CORE() (xPortGetCoreID())
85#if !CONFIG_FREERTOS_UNICORE
86extern portMUX_TYPE xTraceMutex;
88#define TRC_KERNEL_PORT_ALLOC_CRITICAL_SECTION() TraceUnsignedBaseType_t TRACE_ALLOC_CRITICAL_SECTION_NAME;
89#define TRC_KERNEL_PORT_ENTER_CRITICAL_SECTION() TRACE_ALLOC_CRITICAL_SECTION_NAME = 0UL; portENTER_CRITICAL_SAFE(&xTraceMutex);
90#define TRC_KERNEL_PORT_EXIT_CRITICAL_SECTION() (void)TRACE_ALLOC_CRITICAL_SECTION_NAME; portEXIT_CRITICAL_SAFE(&xTraceMutex);
93#define TRC_KERNEL_PORT_ALLOC_CRITICAL_SECTION()
94#define TRC_KERNEL_PORT_ENTER_CRITICAL_SECTION()
95#define TRC_KERNEL_PORT_EXIT_CRITICAL_SECTION()
98#if (defined(TRC_USE_TRACEALYZER_RECORDER)) && (TRC_USE_TRACEALYZER_RECORDER == 1)
106#define TRC_PLATFORM_CFG "FreeRTOS"
114#define TRC_PLATFORM_CFG_MAJOR 1
122#define TRC_PLATFORM_CFG_MINOR 2
130#define TRC_PLATFORM_CFG_PATCH 0
146__attribute__((constructor))
void vTraceInit();
148#if defined(TRC_CFG_ENABLE_STACK_MONITOR) && (TRC_CFG_ENABLE_STACK_MONITOR == 1) && (TRC_CFG_SCHEDULING_ONLY == 0)
155#define TRC_CFG_ALLOW_TASK_DELETE INCLUDE_vTaskDelete
158#undef INCLUDE_uxTaskGetStackHighWaterMark
159#define INCLUDE_uxTaskGetStackHighWaterMark 1
164#undef INCLUDE_xTaskGetCurrentTaskHandle
165#define INCLUDE_xTaskGetCurrentTaskHandle 1
167#define TRC_KERNEL_PORT_KERNEL_CAN_SWITCH_TO_SAME_TASK 0
171#define TRC_KERNEL_PORT_BUFFER_SIZE (sizeof(TraceHeapHandle_t) + sizeof(void*))
178 uint8_t buffer[TRC_KERNEL_PORT_BUFFER_SIZE];
179} TraceKernelPortDataBuffer_t;
189traceResult xTraceKernelPortInitialize(TraceKernelPortDataBuffer_t* pxBuffer);
197traceResult xTraceKernelPortEnable(
void);
207traceResult xTraceKernelPortDelay(uint32_t uiTicks);
215unsigned char xTraceKernelPortIsSchedulerSuspended(
void);
220#define TRC_KERNEL_PORT_SET_INTERRUPT_MASK() ((TraceBaseType_t)portSET_INTERRUPT_MASK_FROM_ISR())
222#if (TRC_CFG_SCHEDULING_ONLY == 0)
230void vTraceSetQueueName(
void* pvQueue,
const char* szName);
238void vTraceSetSemaphoreName(
void* pvSemaphore,
const char* szName);
246void vTraceSetMutexName(
void* pvMutex,
const char* szName);
248#if (TRC_CFG_INCLUDE_EVENT_GROUP_EVENTS == 1)
256void vTraceSetEventGroupName(
void* pvEventGroup,
const char* szName);
263#define vTraceSetEventGroupName(__pvEventGroup, __szName) ((void)(__pvEventGroup), (void)(__szName))
267#if (TRC_CFG_INCLUDE_STREAM_BUFFER_EVENTS == 1)
275void vTraceSetStreamBufferName(
void* pvStreamBuffer,
const char* szName);
283void vTraceSetMessageBufferName(
void* pvMessageBuffer,
const char* szName);
290#define vTraceSetStreamBufferName(__pvStreamBuffer, __szName) ((void)(__pvStreamBuffer), (void)(__szName))
295#define vTraceSetMessageBufferName(__pvMessageBuffer, __szName) ((void)(__pvMessageBuffer), (void)(__szName))
299#if defined(TRC_CFG_ENABLE_STACK_MONITOR) && (TRC_CFG_ENABLE_STACK_MONITOR == 1)
310traceResult xTraceKernelPortGetUnusedStack(
void* pvTask, TraceUnsignedBaseType_t *puxUnusedStack);
319#define vTraceSetQueueName(__pvQueue, __szName) ((void)(__pvQueue), (void)(__szName))
324#define vTraceSetSemaphoreName(__pvSemaphore, __szName) ((void)(__pvSemaphore), (void)(__szName))
329#define vTraceSetMutexName(__pvMutex, __szName) ((void)(__pvMutex), (void)(__szName))
334#define vTraceSetEventGroupName(__pvEventGroup, __szName) ((void)(__pvEventGroup), (void)(__szName))
339#define vTraceSetStreamBufferName(__pvStreamBuffer, __szName) ((void)(__pvStreamBuffer), (void)(__szName))
344#define vTraceSetMessageBufferName(__pvMessageBuffer, __szName) ((void)(__pvMessageBuffer), (void)(__szName))
349#define xTraceKernelPortGetUnusedStack(pvTask, puxUnusedStack) ((void)(pvTask), (void)(puxUnusedStack))
354#undef INCLUDE_xTaskGetSchedulerState
355#define INCLUDE_xTaskGetSchedulerState 1
360#define TRACE_KERNEL_VERSION 0x1AA1
365#define TRC_TICK_RATE_HZ configTICK_RATE_HZ
370#define TRACE_CPU_CLOCK_HZ configCPU_CLOCK_HZ
372#if (TRC_CFG_RECORDER_BUFFER_ALLOCATION == TRC_RECORDER_BUFFER_ALLOCATION_DYNAMIC)
376#define TRC_KERNEL_PORT_HEAP_INIT(size)
381#define TRC_KERNEL_PORT_HEAP_MALLOC(size) pvPortMalloc(size)
384#if defined(configUSE_TIMERS)
385#if (configUSE_TIMERS == 1)
386#undef INCLUDE_xTimerGetTimerDaemonTaskHandle
387#define INCLUDE_xTimerGetTimerDaemonTaskHandle 1
391#if (TRC_CFG_ESP_IDF_VERSION <= TRC_ESP_IDF_VERSION_4_2_0)
392 #define isQueueReceiveHookActuallyPeek xJustPeeking
393#elif (TRC_CFG_ESP_IDF_VERSION > TRC_ESP_IDF_VERSION_4_2_0)
394 #define isQueueReceiveHookActuallyPeek (__LINE__ < 0)
398#define TZ__CAT2(a,b) a ## b
399#define TZ__CAT(a,b) TZ__CAT2(a, b)
406#define xQueueGiveFromISR(a,b) TZ__CAT(xQueueGiveFromISR__, uxQueueType) (a,b)
409#define xQueueGiveFromISR__pcHead(__a, __b) MyWrapper_xQueueGiveFromISR(__a, __b, const BaseType_t xCopyPosition); \
410BaseType_t xQueueGiveFromISR(__a, __b) { return MyWrapper_xQueueGiveFromISR(xQueue, pxHigherPriorityTaskWoken, queueSEND_TO_BACK); } \
411BaseType_t MyWrapper_xQueueGiveFromISR(__a, __b, const BaseType_t xCopyPosition)
414#define xQueueGiveFromISR__uxQueueType(__a, __b) xQueueGiveFromISR(__a,__b)
416TraceHeapHandle_t xTraceKernelPortGetSystemHeapHandle(
void);
427#define PSF_EVENT_NULL_EVENT 0x00
429#define PSF_EVENT_TRACE_START 0x01
430#define PSF_EVENT_TS_CONFIG 0x02
431#define PSF_EVENT_OBJ_NAME 0x03
432#define PSF_EVENT_TASK_PRIORITY 0x04
433#define PSF_EVENT_TASK_PRIO_INHERIT 0x05
434#define PSF_EVENT_TASK_PRIO_DISINHERIT 0x06
435#define PSF_EVENT_DEFINE_ISR 0x07
437#define PSF_EVENT_TASK_CREATE 0x10
438#define PSF_EVENT_QUEUE_CREATE 0x11
439#define PSF_EVENT_SEMAPHORE_BINARY_CREATE 0x12
440#define PSF_EVENT_MUTEX_CREATE 0x13
441#define PSF_EVENT_TIMER_CREATE 0x14
442#define PSF_EVENT_EVENTGROUP_CREATE 0x15
443#define PSF_EVENT_SEMAPHORE_COUNTING_CREATE 0x16
444#define PSF_EVENT_MUTEX_RECURSIVE_CREATE 0x17
445#define PSF_EVENT_STREAMBUFFER_CREATE 0x18
446#define PSF_EVENT_MESSAGEBUFFER_CREATE 0x19
448#define PSF_EVENT_TASK_DELETE 0x20
449#define PSF_EVENT_QUEUE_DELETE 0x21
450#define PSF_EVENT_SEMAPHORE_DELETE 0x22
451#define PSF_EVENT_MUTEX_DELETE 0x23
452#define PSF_EVENT_TIMER_DELETE 0x24
453#define PSF_EVENT_EVENTGROUP_DELETE 0x25
454#define PSF_EVENT_STREAMBUFFER_DELETE 0x28
455#define PSF_EVENT_MESSAGEBUFFER_DELETE 0x29
457#define PSF_EVENT_TASK_READY 0x30
458#define PSF_EVENT_NEW_TIME 0x31
459#define PSF_EVENT_NEW_TIME_SCHEDULER_SUSPENDED 0x32
460#define PSF_EVENT_ISR_BEGIN 0x33
461#define PSF_EVENT_ISR_RESUME 0x34
462#define PSF_EVENT_TS_BEGIN 0x35
463#define PSF_EVENT_TS_RESUME 0x36
464#define PSF_EVENT_TASK_ACTIVATE 0x37
466#define PSF_EVENT_MALLOC 0x38
467#define PSF_EVENT_FREE 0x39
469#define PSF_EVENT_LOWPOWER_BEGIN 0x3A
470#define PSF_EVENT_LOWPOWER_END 0x3B
472#define PSF_EVENT_IFE_NEXT 0x3C
473#define PSF_EVENT_IFE_DIRECT 0x3D
475#define PSF_EVENT_TASK_CREATE_FAILED 0x40
476#define PSF_EVENT_QUEUE_CREATE_FAILED 0x41
477#define PSF_EVENT_SEMAPHORE_BINARY_CREATE_FAILED 0x42
478#define PSF_EVENT_MUTEX_CREATE_FAILED 0x43
479#define PSF_EVENT_TIMER_CREATE_FAILED 0x44
480#define PSF_EVENT_EVENTGROUP_CREATE_FAILED 0x45
481#define PSF_EVENT_SEMAPHORE_COUNTING_CREATE_FAILED 0x46
482#define PSF_EVENT_MUTEX_RECURSIVE_CREATE_FAILED 0x47
483#define PSF_EVENT_STREAMBUFFER_CREATE_FAILED 0x49
484#define PSF_EVENT_MESSAGEBUFFER_CREATE_FAILED 0x4A
486#define PSF_EVENT_TIMER_DELETE_FAILED 0x48
488#define PSF_EVENT_QUEUE_SEND 0x50
489#define PSF_EVENT_SEMAPHORE_GIVE 0x51
490#define PSF_EVENT_MUTEX_GIVE 0x52
492#define PSF_EVENT_QUEUE_SEND_FAILED 0x53
493#define PSF_EVENT_SEMAPHORE_GIVE_FAILED 0x54
494#define PSF_EVENT_MUTEX_GIVE_FAILED 0x55
496#define PSF_EVENT_QUEUE_SEND_BLOCK 0x56
497#define PSF_EVENT_SEMAPHORE_GIVE_BLOCK 0x57
498#define PSF_EVENT_MUTEX_GIVE_BLOCK 0x58
500#define PSF_EVENT_QUEUE_SEND_FROMISR 0x59
501#define PSF_EVENT_SEMAPHORE_GIVE_FROMISR 0x5A
503#define PSF_EVENT_QUEUE_SEND_FROMISR_FAILED 0x5C
504#define PSF_EVENT_SEMAPHORE_GIVE_FROMISR_FAILED 0x5D
506#define PSF_EVENT_QUEUE_RECEIVE 0x60
507#define PSF_EVENT_SEMAPHORE_TAKE 0x61
508#define PSF_EVENT_MUTEX_TAKE 0x62
510#define PSF_EVENT_QUEUE_RECEIVE_FAILED 0x63
511#define PSF_EVENT_SEMAPHORE_TAKE_FAILED 0x64
512#define PSF_EVENT_MUTEX_TAKE_FAILED 0x65
514#define PSF_EVENT_QUEUE_RECEIVE_BLOCK 0x66
515#define PSF_EVENT_SEMAPHORE_TAKE_BLOCK 0x67
516#define PSF_EVENT_MUTEX_TAKE_BLOCK 0x68
518#define PSF_EVENT_QUEUE_RECEIVE_FROMISR 0x69
519#define PSF_EVENT_SEMAPHORE_TAKE_FROMISR 0x6A
521#define PSF_EVENT_QUEUE_RECEIVE_FROMISR_FAILED 0x6C
522#define PSF_EVENT_SEMAPHORE_TAKE_FROMISR_FAILED 0x6D
524#define PSF_EVENT_QUEUE_PEEK 0x70
525#define PSF_EVENT_SEMAPHORE_PEEK 0x71
526#define PSF_EVENT_MUTEX_PEEK 0x72
528#define PSF_EVENT_QUEUE_PEEK_FAILED 0x73
529#define PSF_EVENT_SEMAPHORE_PEEK_FAILED 0x74
530#define PSF_EVENT_MUTEX_PEEK_FAILED 0x75
532#define PSF_EVENT_QUEUE_PEEK_BLOCK 0x76
533#define PSF_EVENT_SEMAPHORE_PEEK_BLOCK 0x77
534#define PSF_EVENT_MUTEX_PEEK_BLOCK 0x78
536#define PSF_EVENT_TASK_DELAY_UNTIL 0x79
537#define PSF_EVENT_TASK_DELAY 0x7A
538#define PSF_EVENT_TASK_SUSPEND 0x7B
539#define PSF_EVENT_TASK_RESUME 0x7C
540#define PSF_EVENT_TASK_RESUME_FROMISR 0x7D
542#define PSF_EVENT_TIMER_PENDFUNCCALL 0x80
543#define PSF_EVENT_TIMER_PENDFUNCCALL_FROMISR 0x81
544#define PSF_EVENT_TIMER_PENDFUNCCALL_FAILED 0x82
545#define PSF_EVENT_TIMER_PENDFUNCCALL_FROMISR_FAILED 0x83
548#define PSF_EVENT_USER_EVENT 0x90
551#define PSF_EVENT_USER_EVENT_FIXED 0x98
553#define PSF_EVENT_TIMER_START 0xA0
554#define PSF_EVENT_TIMER_RESET 0xA1
555#define PSF_EVENT_TIMER_STOP 0xA2
556#define PSF_EVENT_TIMER_CHANGEPERIOD 0xA3
557#define PSF_EVENT_TIMER_START_FROMISR 0xA4
558#define PSF_EVENT_TIMER_RESET_FROMISR 0xA5
559#define PSF_EVENT_TIMER_STOP_FROMISR 0xA6
560#define PSF_EVENT_TIMER_CHANGEPERIOD_FROMISR 0xA7
561#define PSF_EVENT_TIMER_START_FAILED 0xA8
562#define PSF_EVENT_TIMER_RESET_FAILED 0xA9
563#define PSF_EVENT_TIMER_STOP_FAILED 0xAA
564#define PSF_EVENT_TIMER_CHANGEPERIOD_FAILED 0xAB
565#define PSF_EVENT_TIMER_START_FROMISR_FAILED 0xAC
566#define PSF_EVENT_TIMER_RESET_FROMISR_FAILED 0xAD
567#define PSF_EVENT_TIMER_STOP_FROMISR_FAILED 0xAE
568#define PSF_EVENT_TIMER_CHANGEPERIOD_FROMISR_FAILED 0xAF
570#define PSF_EVENT_EVENTGROUP_SYNC 0xB0
571#define PSF_EVENT_EVENTGROUP_WAITBITS 0xB1
572#define PSF_EVENT_EVENTGROUP_CLEARBITS 0xB2
573#define PSF_EVENT_EVENTGROUP_CLEARBITS_FROMISR 0xB3
574#define PSF_EVENT_EVENTGROUP_SETBITS 0xB4
575#define PSF_EVENT_EVENTGROUP_SETBITS_FROMISR 0xB5
576#define PSF_EVENT_EVENTGROUP_SYNC_BLOCK 0xB6
577#define PSF_EVENT_EVENTGROUP_WAITBITS_BLOCK 0xB7
578#define PSF_EVENT_EVENTGROUP_SYNC_FAILED 0xB8
579#define PSF_EVENT_EVENTGROUP_WAITBITS_FAILED 0xB9
581#define PSF_EVENT_QUEUE_SEND_FRONT 0xC0
582#define PSF_EVENT_QUEUE_SEND_FRONT_FAILED 0xC1
583#define PSF_EVENT_QUEUE_SEND_FRONT_BLOCK 0xC2
584#define PSF_EVENT_QUEUE_SEND_FRONT_FROMISR 0xC3
585#define PSF_EVENT_QUEUE_SEND_FRONT_FROMISR_FAILED 0xC4
586#define PSF_EVENT_MUTEX_GIVE_RECURSIVE 0xC5
587#define PSF_EVENT_MUTEX_GIVE_RECURSIVE_FAILED 0xC6
588#define PSF_EVENT_MUTEX_TAKE_RECURSIVE 0xC7
589#define PSF_EVENT_MUTEX_TAKE_RECURSIVE_FAILED 0xC8
591#define PSF_EVENT_TASK_NOTIFY 0xC9
592#define PSF_EVENT_TASK_NOTIFY_WAIT 0xCA
593#define PSF_EVENT_TASK_NOTIFY_WAIT_BLOCK 0xCB
594#define PSF_EVENT_TASK_NOTIFY_WAIT_FAILED 0xCC
595#define PSF_EVENT_TASK_NOTIFY_FROM_ISR 0xCD
597#define PSF_EVENT_TIMER_EXPIRED 0xD2
599#define PSF_EVENT_STREAMBUFFER_SEND 0xD3
600#define PSF_EVENT_STREAMBUFFER_SEND_BLOCK 0xD4
601#define PSF_EVENT_STREAMBUFFER_SEND_FAILED 0xD5
602#define PSF_EVENT_STREAMBUFFER_RECEIVE 0xD6
603#define PSF_EVENT_STREAMBUFFER_RECEIVE_BLOCK 0xD7
604#define PSF_EVENT_STREAMBUFFER_RECEIVE_FAILED 0xD8
605#define PSF_EVENT_STREAMBUFFER_SEND_FROM_ISR 0xD9
606#define PSF_EVENT_STREAMBUFFER_SEND_FROM_ISR_FAILED 0xDA
607#define PSF_EVENT_STREAMBUFFER_RECEIVE_FROM_ISR 0xDB
608#define PSF_EVENT_STREAMBUFFER_RECEIVE_FROM_ISR_FAILED 0xDC
609#define PSF_EVENT_STREAMBUFFER_RESET 0xDD
611#define PSF_EVENT_MESSAGEBUFFER_SEND 0xDE
612#define PSF_EVENT_MESSAGEBUFFER_SEND_BLOCK 0xDF
613#define PSF_EVENT_MESSAGEBUFFER_SEND_FAILED 0xE0
614#define PSF_EVENT_MESSAGEBUFFER_RECEIVE 0xE1
615#define PSF_EVENT_MESSAGEBUFFER_RECEIVE_BLOCK 0xE2
616#define PSF_EVENT_MESSAGEBUFFER_RECEIVE_FAILED 0xE3
617#define PSF_EVENT_MESSAGEBUFFER_SEND_FROM_ISR 0xE4
618#define PSF_EVENT_MESSAGEBUFFER_SEND_FROM_ISR_FAILED 0xE5
619#define PSF_EVENT_MESSAGEBUFFER_RECEIVE_FROM_ISR 0xE6
620#define PSF_EVENT_MESSAGEBUFFER_RECEIVE_FROM_ISR_FAILED 0xE7
621#define PSF_EVENT_MESSAGEBUFFER_RESET 0xE8
623#define PSF_EVENT_MALLOC_FAILED 0xE9
624#define PSF_EVENT_FREE_FAILED 0xEA
626#define PSF_EVENT_UNUSED_STACK 0xEB
628#define PSF_EVENT_STATEMACHINE_STATE_CREATE 0xEC
629#define PSF_EVENT_STATEMACHINE_CREATE 0xED
630#define PSF_EVENT_STATEMACHINE_STATECHANGE 0xEE
632#define PSF_EVENT_INTERVAL_CHANNEL_CREATE 0xEF
633#define PSF_EVENT_INTERVAL_START 0xF0
635#define PSF_EVENT_EXTENSION_CREATE 0xF1
637#define PSF_EVENT_HEAP_CREATE 0xF2
639#define PSF_EVENT_COUNTER_CREATE 0xF3
640#define PSF_EVENT_COUNTER_CHANGE 0xF4
641#define PSF_EVENT_COUNTER_LIMIT_EXCEEDED 0xF5
643#define PSF_EVENT_MUTEX_TAKE_RECURSIVE_BLOCK 0xF6
645#define PSF_EVENT_INTERVAL_STOP 0xF7
646#define PSF_EVENT_INTERVAL_CHANNEL_SET_CREATE 0xF8
648#define PSF_EVENT_RUNNABLE_REGISTER 0xF9
649#define PSF_EVENT_RUNNABLE_START 0xFA
650#define PSF_EVENT_RUNNABLE_STOP 0xFB
652#define PSF_EVENT_DEPENDENCY_REGISTER 0xFC
654#define TRC_EVENT_LAST_ID (PSF_EVENT_DEPENDENCY_REGISTER)
660#undef traceINCREASE_TICK_COUNT
662#define traceINCREASE_TICK_COUNT( xCount ) { uint32_t uiTraceTickCount; xTraceTimestampGetOsTickCount(&uiTraceTickCount); xTraceTimestampSetOsTickCount(uiTraceTickCount + (xCount)); }
664#if (TRC_CFG_INCLUDE_OSTICK_EVENTS == 1)
666#define OS_TICK_EVENT(uxSchedulerSuspended, xTickCount) if ((uxSchedulerSuspended) == (unsigned portBASE_TYPE) pdFALSE) { prvTraceEventCreate1(PSF_EVENT_NEW_TIME, xTickCount); }
670#define OS_TICK_EVENT(uxSchedulerSuspended, xTickCount)
675#undef traceTASK_INCREMENT_TICK
676#if TRC_CFG_ESP_IDF_VERSION >= TRC_ESP_IDF_VERSION_4_3_0
678#define traceTASK_INCREMENT_TICK( xTickCount ) \
679 if (uxSchedulerSuspended[xPortGetCoreID()] == ( unsigned portBASE_TYPE ) pdTRUE || xPendedTicks == 0) { (void)xTraceTimestampSetOsTickCount((xTickCount) + 1); } \
680 OS_TICK_EVENT(uxSchedulerSuspended[xPortGetCoreID()], xTickCount + 1)
682#elif TRC_CFG_ESP_IDF_VERSION >= TRC_ESP_IDF_VERSION_4_0_0
684#define traceTASK_INCREMENT_TICK( xTickCount ) \
685 if (uxSchedulerSuspended[xPortGetCoreID()] == ( unsigned portBASE_TYPE ) pdTRUE || uxPendedTicks == 0) { (void)xTraceTimestampSetOsTickCount((xTickCount) + 1); } \
686 OS_TICK_EVENT(uxSchedulerSuspended[xPortGetCoreID()], xTickCount + 1)
690#define traceTASK_INCREMENT_TICK( xTickCount ) \
691 if (uxSchedulerSuspended[xPortGetCoreID()] == ( unsigned portBASE_TYPE ) pdTRUE || uxMissedTicks == 0) { (void)xTraceTimestampSetOsTickCount((xTickCount) + 1); } \
692 OS_TICK_EVENT(uxSchedulerSuspended[xPortGetCoreID()], xTickCount + 1)
697#undef traceTASK_SWITCHED_IN
698#if (TRC_CFG_ESP_IDF_VERSION >= TRC_ESP_IDF_VERSION_5_2_0)
699#define traceTASK_SWITCHED_IN() \
700 xTraceTaskSwitch(pxCurrentTCBs[xPortGetCoreID()], pxCurrentTCBs[xPortGetCoreID()]->uxPriority)
702#define traceTASK_SWITCHED_IN() \
703 xTraceTaskSwitch(pxCurrentTCB[xPortGetCoreID()], pxCurrentTCB[xPortGetCoreID()]->uxPriority)
707#if (TRC_CFG_INCLUDE_READY_EVENTS == 1)
708#undef traceMOVED_TASK_TO_READY_STATE
709#define traceMOVED_TASK_TO_READY_STATE( pxTCB ) \
710 xTraceTaskReady(pxTCB);
713#undef traceTASK_CREATE
714#if TRC_CFG_ESP_IDF_VERSION >= TRC_ESP_IDF_VERSION_4_2_0
716#define traceTASK_CREATE(pxNewTCB) \
717 if ((pxNewTCB) != 0) \
719 xTraceTaskRegisterWithoutHandle((void*)(pxNewTCB), (pxNewTCB)->pcTaskName, (pxNewTCB)->uxPriority); \
723#define traceTASK_CREATE(pxNewTCB) \
726 xTraceTaskRegisterWithoutHandle((void*)pxNewTCB, (const char*)pcName, (uint32_t)uxPriority); \
731#undef traceTASK_CREATE_FAILED
732#define traceTASK_CREATE_FAILED() \
733 prvTraceEventCreate0(PSF_EVENT_TASK_CREATE_FAILED)
736#undef traceTASK_DELETE
737#define traceTASK_DELETE( pxTaskToDelete ) \
738 xTraceTaskUnregisterWithoutHandle(pxTaskToDelete, (pxTaskToDelete)->uxPriority)
740#if (TRC_CFG_SCHEDULING_ONLY == 0)
742#if (defined(configUSE_TICKLESS_IDLE) && configUSE_TICKLESS_IDLE != 0)
744#undef traceLOW_POWER_IDLE_BEGIN
745#define traceLOW_POWER_IDLE_BEGIN() \
746 prvTraceEventCreate1(PSF_EVENT_LOWPOWER_BEGIN, xExpectedIdleTime)
748#undef traceLOW_POWER_IDLE_END
749#define traceLOW_POWER_IDLE_END() \
750 prvTraceEventCreate0(PSF_EVENT_LOWPOWER_END)
755#undef traceTASK_SUSPEND
756#define traceTASK_SUSPEND( pxTaskToSuspend ) \
757 prvTraceEventCreate1(PSF_EVENT_TASK_SUSPEND, pxTaskToSuspend)
760#undef traceTASK_DELAY
761#define traceTASK_DELAY() \
762 prvTraceEventCreate1(PSF_EVENT_TASK_DELAY, xTicksToDelay)
765#undef traceTASK_DELAY_UNTIL
766#if TRC_CFG_ESP_IDF_VERSION < TRC_ESP_IDF_VERSION_5_1_0
767 #define traceTASK_DELAY_UNTIL() \
768 prvTraceEventCreate1(PSF_EVENT_TASK_DELAY_UNTIL, 0)
770 #define traceTASK_DELAY_UNTIL(xTimeToDelay) \
771 prvTraceEventCreate1(PSF_EVENT_TASK_DELAY_UNTIL, xTimeToDelay)
774#if (TRC_CFG_ESP_IDF_VERSION >= TRC_ESP_IDF_VERSION_4_3_0)
776#define traceQUEUE_CREATE_HELPER() \
777 case queueQUEUE_TYPE_MUTEX: \
778 xTraceObjectRegisterWithoutHandle(PSF_EVENT_MUTEX_CREATE, (void*)pxNewQueue, "", 0); \
780 case queueQUEUE_TYPE_RECURSIVE_MUTEX: \
781 xTraceObjectRegisterWithoutHandle(PSF_EVENT_MUTEX_RECURSIVE_CREATE, (void*)pxNewQueue, "", 0); \
785#define traceQUEUE_CREATE_HELPER()
790#undef traceQUEUE_CREATE
791#define traceQUEUE_CREATE( pxNewQueue )\
792 switch ((pxNewQueue)->ucQueueType) \
794 case queueQUEUE_TYPE_BASE: \
795 xTraceObjectRegisterWithoutHandle(PSF_EVENT_QUEUE_CREATE, (void*)(pxNewQueue), "", (uint32_t)uxQueueLength); \
797 case queueQUEUE_TYPE_BINARY_SEMAPHORE: \
798 xTraceObjectRegisterWithoutHandle(PSF_EVENT_SEMAPHORE_BINARY_CREATE, (void*)(pxNewQueue), "", 0); \
800 traceQUEUE_CREATE_HELPER() \
803#if (TRC_CFG_ESP_IDF_VERSION >= TRC_ESP_IDF_VERSION_4_3_0)
805#define traceQUEUE_CREATE_FAILED_HELPER() \
806 case queueQUEUE_TYPE_MUTEX: \
807 prvTraceEventCreate2(PSF_EVENT_MUTEX_CREATE_FAILED, 0, 0); \
809 case queueQUEUE_TYPE_RECURSIVE_MUTEX: \
810 prvTraceEventCreate2(PSF_EVENT_MUTEX_RECURSIVE_CREATE_FAILED, 0, 0); \
815#define traceQUEUE_CREATE_FAILED_HELPER()
820#undef traceQUEUE_CREATE_FAILED
821#define traceQUEUE_CREATE_FAILED( queueType ) \
824 case queueQUEUE_TYPE_BASE: \
825 prvTraceEventCreate2(PSF_EVENT_QUEUE_CREATE_FAILED, 0, uxQueueLength); \
827 case queueQUEUE_TYPE_BINARY_SEMAPHORE: \
828 prvTraceEventCreate2(PSF_EVENT_SEMAPHORE_BINARY_CREATE_FAILED, 0, 0); \
830 traceQUEUE_CREATE_FAILED_HELPER() \
833#undef traceQUEUE_DELETE
834#define traceQUEUE_DELETE( pxQueue ) \
835 switch ((pxQueue)->ucQueueType) \
837 case queueQUEUE_TYPE_BASE: \
838 xTraceObjectUnregisterWithoutHandle(PSF_EVENT_QUEUE_DELETE, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting); \
840 case queueQUEUE_TYPE_MUTEX: \
841 case queueQUEUE_TYPE_RECURSIVE_MUTEX: \
842 xTraceObjectUnregisterWithoutHandle(PSF_EVENT_MUTEX_DELETE, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting); \
844 case queueQUEUE_TYPE_COUNTING_SEMAPHORE: \
845 case queueQUEUE_TYPE_BINARY_SEMAPHORE: \
846 xTraceObjectUnregisterWithoutHandle(PSF_EVENT_SEMAPHORE_DELETE, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting); \
851#undef traceCREATE_COUNTING_SEMAPHORE
852#define traceCREATE_COUNTING_SEMAPHORE() \
853 xTraceObjectRegisterWithoutHandle(PSF_EVENT_SEMAPHORE_COUNTING_CREATE, (void*)xHandle, "", (uint32_t)uxMaxCount)
855#undef traceCREATE_COUNTING_SEMAPHORE_FAILED
856#define traceCREATE_COUNTING_SEMAPHORE_FAILED() \
857 prvTraceEventCreate2(PSF_EVENT_SEMAPHORE_COUNTING_CREATE_FAILED, 0, uxMaxCount);
861#if (TRC_CFG_ESP_IDF_VERSION < TRC_ESP_IDF_VERSION_4_3_0)
864#undef traceCREATE_MUTEX
865#define traceCREATE_MUTEX( pxNewQueue ) \
866 switch (pxNewQueue->ucQueueType) \
868 case queueQUEUE_TYPE_MUTEX: \
869 xTraceObjectRegisterWithoutHandle(PSF_EVENT_MUTEX_CREATE, (void*)(pxNewQueue), "", 0); \
871 case queueQUEUE_TYPE_RECURSIVE_MUTEX: \
872 xTraceObjectRegisterWithoutHandle(PSF_EVENT_MUTEX_RECURSIVE_CREATE, (void*)(pxNewQueue), "", 0); \
877#undef traceCREATE_MUTEX_FAILED
878#define traceCREATE_MUTEX_FAILED() \
879 prvTraceEventCreate2(PSF_EVENT_MUTEX_CREATE_FAILED, 0, 0)
883#undef traceGIVE_MUTEX_RECURSIVE_FAILED
884#define traceGIVE_MUTEX_RECURSIVE_FAILED( pxMutex ) \
885 prvTraceEventCreate1(PSF_EVENT_MUTEX_GIVE_RECURSIVE_FAILED, (void*)(pxMutex))
888#undef traceQUEUE_SEND
889#define traceQUEUE_SEND( pxQueue ) \
890 switch ((pxQueue)->ucQueueType) \
892 case queueQUEUE_TYPE_BASE: \
893 prvTraceEventCreate2(xCopyPosition == queueSEND_TO_BACK ? PSF_EVENT_QUEUE_SEND : PSF_EVENT_QUEUE_SEND_FRONT, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting + 1); \
895 case queueQUEUE_TYPE_BINARY_SEMAPHORE: \
896 case queueQUEUE_TYPE_COUNTING_SEMAPHORE: \
897 prvTraceEventCreate2(PSF_EVENT_SEMAPHORE_GIVE, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting + 1); \
899 case queueQUEUE_TYPE_MUTEX: \
900 prvTraceEventCreate1(PSF_EVENT_MUTEX_GIVE, (void*)(pxQueue)); \
902 case queueQUEUE_TYPE_RECURSIVE_MUTEX: \
903 prvTraceEventCreate1(PSF_EVENT_MUTEX_GIVE_RECURSIVE, (void*)(pxQueue)); \
907#undef traceQUEUE_SET_SEND
908#define traceQUEUE_SET_SEND( pxQueue ) \
909 prvTraceEventCreate2(PSF_EVENT_QUEUE_SEND, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting + 1)
912#undef traceQUEUE_SEND_FAILED
913#define traceQUEUE_SEND_FAILED( pxQueue ) \
914 switch ((pxQueue)->ucQueueType) \
916 case queueQUEUE_TYPE_BASE: \
917 prvTraceEventCreate2(xCopyPosition == queueSEND_TO_BACK ? PSF_EVENT_QUEUE_SEND_FAILED : PSF_EVENT_QUEUE_SEND_FRONT_FAILED, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting); \
919 case queueQUEUE_TYPE_BINARY_SEMAPHORE: \
920 case queueQUEUE_TYPE_COUNTING_SEMAPHORE: \
921 prvTraceEventCreate2(PSF_EVENT_SEMAPHORE_GIVE_FAILED, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting); \
923 case queueQUEUE_TYPE_MUTEX: \
924 case queueQUEUE_TYPE_RECURSIVE_MUTEX: \
925 prvTraceEventCreate1(PSF_EVENT_MUTEX_GIVE_FAILED, (void*)(pxQueue)); \
930#undef traceBLOCKING_ON_QUEUE_SEND
931#define traceBLOCKING_ON_QUEUE_SEND( pxQueue ) \
932 switch ((pxQueue)->ucQueueType) \
934 case queueQUEUE_TYPE_BASE: \
935 prvTraceEventCreate2(xCopyPosition == queueSEND_TO_BACK ? PSF_EVENT_QUEUE_SEND_BLOCK : PSF_EVENT_QUEUE_SEND_FRONT_BLOCK, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting); \
937 case queueQUEUE_TYPE_BINARY_SEMAPHORE: \
938 case queueQUEUE_TYPE_COUNTING_SEMAPHORE: \
939 prvTraceEventCreate2(PSF_EVENT_SEMAPHORE_GIVE_BLOCK, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting); \
941 case queueQUEUE_TYPE_MUTEX: \
942 case queueQUEUE_TYPE_RECURSIVE_MUTEX: \
943 prvTraceEventCreate1(PSF_EVENT_MUTEX_GIVE_BLOCK, (void*)(pxQueue)); \
948#undef traceQUEUE_SEND_FROM_ISR
949#define traceQUEUE_SEND_FROM_ISR( pxQueue ) \
950 switch ((pxQueue)->ucQueueType) \
952 case queueQUEUE_TYPE_BASE: \
953 prvTraceEventCreate2(xCopyPosition == queueSEND_TO_BACK ? PSF_EVENT_QUEUE_SEND_FROMISR : PSF_EVENT_QUEUE_SEND_FRONT_FROMISR, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting + 1); \
955 case queueQUEUE_TYPE_BINARY_SEMAPHORE: \
956 case queueQUEUE_TYPE_COUNTING_SEMAPHORE: \
957 prvTraceEventCreate2(PSF_EVENT_SEMAPHORE_GIVE_FROMISR, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting + 1); \
960#undef traceQUEUE_GIVE_FROM_ISR
961#define traceQUEUE_GIVE_FROM_ISR( pxQueue ) traceQUEUE_SEND_FROM_ISR(pxQueue)
964#undef traceQUEUE_SEND_FROM_ISR_FAILED
965#define traceQUEUE_SEND_FROM_ISR_FAILED( pxQueue ) \
966 switch ((pxQueue)->ucQueueType) \
968 case queueQUEUE_TYPE_BASE: \
969 prvTraceEventCreate2(xCopyPosition == queueSEND_TO_BACK ? PSF_EVENT_QUEUE_SEND_FROMISR_FAILED : PSF_EVENT_QUEUE_SEND_FRONT_FROMISR_FAILED, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting); \
971 case queueQUEUE_TYPE_BINARY_SEMAPHORE: \
972 case queueQUEUE_TYPE_COUNTING_SEMAPHORE: \
973 prvTraceEventCreate2(PSF_EVENT_SEMAPHORE_GIVE_FROMISR_FAILED, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting); \
976#undef traceQUEUE_GIVE_FROM_ISR_FAILED
977#define traceQUEUE_GIVE_FROM_ISR_FAILED( pxQueue ) traceQUEUE_SEND_FROM_ISR_FAILED(pxQueue)
980#undef traceQUEUE_RECEIVE
981#define traceQUEUE_RECEIVE( pxQueue ) \
982 switch ((pxQueue)->ucQueueType) \
984 case queueQUEUE_TYPE_BASE: \
985 if (isQueueReceiveHookActuallyPeek) \
987 prvTraceEventCreate3(PSF_EVENT_QUEUE_PEEK, (void*)(pxQueue), xTicksToWait, (pxQueue)->uxMessagesWaiting - 1); \
991 prvTraceEventCreate3(PSF_EVENT_QUEUE_RECEIVE, (void*)(pxQueue), xTicksToWait, (pxQueue)->uxMessagesWaiting - 1); \
994 case queueQUEUE_TYPE_BINARY_SEMAPHORE: \
995 case queueQUEUE_TYPE_COUNTING_SEMAPHORE: \
996 if (isQueueReceiveHookActuallyPeek) \
998 prvTraceEventCreate3(PSF_EVENT_SEMAPHORE_PEEK, (void*)(pxQueue), xTicksToWait, (pxQueue)->uxMessagesWaiting - 1); \
1002 prvTraceEventCreate3(PSF_EVENT_SEMAPHORE_TAKE, (void*)(pxQueue), xTicksToWait, (pxQueue)->uxMessagesWaiting - 1); \
1005 case queueQUEUE_TYPE_MUTEX: \
1006 prvTraceEventCreate2(isQueueReceiveHookActuallyPeek ? PSF_EVENT_MUTEX_PEEK : PSF_EVENT_MUTEX_TAKE, (void*)(pxQueue), xTicksToWait); \
1008 case queueQUEUE_TYPE_RECURSIVE_MUTEX: \
1009 prvTraceEventCreate2(isQueueReceiveHookActuallyPeek ? PSF_EVENT_MUTEX_PEEK : PSF_EVENT_MUTEX_TAKE_RECURSIVE, (void*)(pxQueue), xTicksToWait); \
1012#undef traceQUEUE_SEMAPHORE_RECEIVE
1013#define traceQUEUE_SEMAPHORE_RECEIVE( pxQueue ) traceQUEUE_RECEIVE( pxQueue )
1016#undef traceQUEUE_RECEIVE_FAILED
1017#define traceQUEUE_RECEIVE_FAILED( pxQueue ) \
1018 switch ((pxQueue)->ucQueueType) \
1020 case queueQUEUE_TYPE_BASE: \
1021 prvTraceEventCreate3(isQueueReceiveHookActuallyPeek ? PSF_EVENT_QUEUE_PEEK_FAILED : PSF_EVENT_QUEUE_RECEIVE_FAILED, (void*)(pxQueue), xTicksToWait, (pxQueue)->uxMessagesWaiting); \
1023 case queueQUEUE_TYPE_BINARY_SEMAPHORE: \
1024 case queueQUEUE_TYPE_COUNTING_SEMAPHORE: \
1025 prvTraceEventCreate3(isQueueReceiveHookActuallyPeek ? PSF_EVENT_SEMAPHORE_PEEK_FAILED : PSF_EVENT_SEMAPHORE_TAKE_FAILED, (void*)(pxQueue), xTicksToWait, (pxQueue)->uxMessagesWaiting); \
1027 case queueQUEUE_TYPE_MUTEX: \
1028 prvTraceEventCreate2(isQueueReceiveHookActuallyPeek ? PSF_EVENT_MUTEX_PEEK_FAILED : PSF_EVENT_MUTEX_TAKE_FAILED, (void*)(pxQueue), xTicksToWait); \
1030 case queueQUEUE_TYPE_RECURSIVE_MUTEX: \
1031 prvTraceEventCreate2(isQueueReceiveHookActuallyPeek ? PSF_EVENT_MUTEX_PEEK_FAILED : PSF_EVENT_MUTEX_TAKE_RECURSIVE_FAILED, (void*)(pxQueue), xTicksToWait); \
1036#undef traceBLOCKING_ON_QUEUE_RECEIVE
1037#define traceBLOCKING_ON_QUEUE_RECEIVE( pxQueue ) \
1038 switch ((pxQueue)->ucQueueType) \
1040 case queueQUEUE_TYPE_BASE: \
1041 prvTraceEventCreate3(isQueueReceiveHookActuallyPeek ? PSF_EVENT_QUEUE_PEEK_BLOCK : PSF_EVENT_QUEUE_RECEIVE_BLOCK, (void*)(pxQueue), xTicksToWait, (pxQueue)->uxMessagesWaiting); \
1043 case queueQUEUE_TYPE_BINARY_SEMAPHORE: \
1044 case queueQUEUE_TYPE_COUNTING_SEMAPHORE: \
1045 prvTraceEventCreate3(isQueueReceiveHookActuallyPeek ? PSF_EVENT_SEMAPHORE_PEEK_BLOCK : PSF_EVENT_SEMAPHORE_TAKE_BLOCK, (void*)(pxQueue), xTicksToWait, (pxQueue)->uxMessagesWaiting); \
1047 case queueQUEUE_TYPE_MUTEX: \
1048 prvTraceEventCreate2(isQueueReceiveHookActuallyPeek ? PSF_EVENT_MUTEX_PEEK_BLOCK : PSF_EVENT_MUTEX_TAKE_BLOCK, (void*)(pxQueue), xTicksToWait); \
1050 case queueQUEUE_TYPE_RECURSIVE_MUTEX: \
1051 prvTraceEventCreate2(isQueueReceiveHookActuallyPeek ? PSF_EVENT_MUTEX_PEEK_BLOCK : PSF_EVENT_MUTEX_TAKE_RECURSIVE_BLOCK, (void*)(pxQueue), xTicksToWait); \
1055#if (TRC_CFG_ESP_IDF_VERSION > TRC_ESP_IDF_VERSION_4_3_0)
1058#undef traceQUEUE_PEEK_FAILED
1059#define traceQUEUE_PEEK_FAILED( pxQueue ) \
1060 switch ((pxQueue)->ucQueueType) \
1062 case queueQUEUE_TYPE_BASE: \
1063 prvTraceEventCreate3(PSF_EVENT_QUEUE_PEEK_FAILED, (void*)(pxQueue), xTicksToWait, (pxQueue)->uxMessagesWaiting); \
1065 case queueQUEUE_TYPE_BINARY_SEMAPHORE: \
1066 case queueQUEUE_TYPE_COUNTING_SEMAPHORE: \
1067 prvTraceEventCreate3(PSF_EVENT_SEMAPHORE_PEEK_FAILED, (void*)(pxQueue), xTicksToWait, (pxQueue)->uxMessagesWaiting); \
1069 case queueQUEUE_TYPE_MUTEX: \
1070 case queueQUEUE_TYPE_RECURSIVE_MUTEX: \
1071 prvTraceEventCreate2(PSF_EVENT_MUTEX_PEEK_FAILED, (void*)(pxQueue), xTicksToWait); \
1076#undef traceBLOCKING_ON_QUEUE_PEEK
1077#define traceBLOCKING_ON_QUEUE_PEEK( pxQueue ) \
1078 switch ((pxQueue)->ucQueueType) \
1080 case queueQUEUE_TYPE_BASE: \
1081 prvTraceEventCreate3(PSF_EVENT_QUEUE_PEEK_BLOCK, (void*)(pxQueue), xTicksToWait, (pxQueue)->uxMessagesWaiting); \
1083 case queueQUEUE_TYPE_BINARY_SEMAPHORE: \
1084 case queueQUEUE_TYPE_COUNTING_SEMAPHORE: \
1085 prvTraceEventCreate3(PSF_EVENT_SEMAPHORE_PEEK_BLOCK, (void*)(pxQueue), xTicksToWait, (pxQueue)->uxMessagesWaiting); \
1087 case queueQUEUE_TYPE_MUTEX: \
1088 case queueQUEUE_TYPE_RECURSIVE_MUTEX: \
1089 prvTraceEventCreate2(PSF_EVENT_MUTEX_PEEK_BLOCK, (void*)(pxQueue), xTicksToWait); \
1096#undef traceQUEUE_RECEIVE_FROM_ISR
1097#define traceQUEUE_RECEIVE_FROM_ISR( pxQueue ) \
1098 switch ((pxQueue)->ucQueueType) \
1100 case queueQUEUE_TYPE_BASE: \
1101 prvTraceEventCreate2(PSF_EVENT_QUEUE_RECEIVE_FROMISR, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting - 1); \
1103 case queueQUEUE_TYPE_BINARY_SEMAPHORE: \
1104 case queueQUEUE_TYPE_COUNTING_SEMAPHORE: \
1105 prvTraceEventCreate2(PSF_EVENT_SEMAPHORE_TAKE_FROMISR, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting - 1); \
1110#undef traceQUEUE_RECEIVE_FROM_ISR_FAILED
1111#define traceQUEUE_RECEIVE_FROM_ISR_FAILED( pxQueue ) \
1112 switch ((pxQueue)->ucQueueType) \
1114 case queueQUEUE_TYPE_BASE: \
1115 prvTraceEventCreate2(PSF_EVENT_QUEUE_RECEIVE_FROMISR_FAILED, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting); \
1117 case queueQUEUE_TYPE_BINARY_SEMAPHORE: \
1118 case queueQUEUE_TYPE_COUNTING_SEMAPHORE: \
1119 prvTraceEventCreate2(PSF_EVENT_SEMAPHORE_TAKE_FROMISR_FAILED, (void*)(pxQueue), (pxQueue)->uxMessagesWaiting); \
1124#undef traceQUEUE_PEEK
1125#define traceQUEUE_PEEK( pxQueue ) \
1126 switch ((pxQueue)->ucQueueType) \
1128 case queueQUEUE_TYPE_BASE: \
1129 prvTraceEventCreate3(PSF_EVENT_QUEUE_PEEK, (void*)(pxQueue), xTicksToWait, (pxQueue)->uxMessagesWaiting); \
1131 case queueQUEUE_TYPE_BINARY_SEMAPHORE: \
1132 case queueQUEUE_TYPE_COUNTING_SEMAPHORE: \
1133 prvTraceEventCreate3(PSF_EVENT_SEMAPHORE_PEEK, (void*)(pxQueue), xTicksToWait, (pxQueue)->uxMessagesWaiting); \
1135 case queueQUEUE_TYPE_MUTEX: \
1136 case queueQUEUE_TYPE_RECURSIVE_MUTEX: \
1137 prvTraceEventCreate2(PSF_EVENT_MUTEX_PEEK, (void*)(pxQueue), xTicksToWait); \
1142#undef traceTASK_PRIORITY_SET
1143#define traceTASK_PRIORITY_SET( pxTask, uxNewPriority ) \
1144 xTraceTaskSetPriorityWithoutHandle(pxTask, uxNewPriority)
1147#undef traceTASK_PRIORITY_INHERIT
1148#define traceTASK_PRIORITY_INHERIT( pxTask, uxNewPriority ) \
1149 prvTraceEventCreate2(PSF_EVENT_TASK_PRIO_INHERIT, (void*)(pxTask), uxNewPriority)
1152#undef traceTASK_PRIORITY_DISINHERIT
1153#define traceTASK_PRIORITY_DISINHERIT( pxTask, uxNewPriority ) \
1154 prvTraceEventCreate2(PSF_EVENT_TASK_PRIO_DISINHERIT, (void*)(pxTask), uxNewPriority)
1157#undef traceTASK_RESUME
1158#define traceTASK_RESUME( pxTaskToResume ) \
1159 prvTraceEventCreate1(PSF_EVENT_TASK_RESUME, (void*)(pxTaskToResume))
1162#undef traceTASK_RESUME_FROM_ISR
1163#define traceTASK_RESUME_FROM_ISR( pxTaskToResume ) \
1164 prvTraceEventCreate1(PSF_EVENT_TASK_RESUME_FROMISR, (void*)(pxTaskToResume))
1166#if (TRC_CFG_INCLUDE_MEMMANG_EVENTS == 1)
1169#define traceMALLOC( pvAddress, uiSize ) \
1170 if (xTraceIsRecorderEnabled()) \
1172 xTraceHeapAlloc(xTraceKernelPortGetSystemHeapHandle(), pvAddress, uiSize); \
1176#define traceFREE( pvAddress, uiSize ) \
1177 if (xTraceIsRecorderEnabled()) \
1179 xTraceHeapFree(xTraceKernelPortGetSystemHeapHandle(), pvAddress, uiSize); \
1184#if (TRC_CFG_INCLUDE_TIMER_EVENTS == 1)
1187#undef traceTIMER_CREATE
1188#define traceTIMER_CREATE(tmr) \
1189 xTraceObjectRegisterWithoutHandle(PSF_EVENT_TIMER_CREATE, (void*)(tmr), (const char*)(tmr)->pcTimerName, (uint32_t)(tmr)->xTimerPeriodInTicks)
1191#undef traceTIMER_CREATE_FAILED
1192#define traceTIMER_CREATE_FAILED() \
1193 prvTraceEventCreate0(PSF_EVENT_TIMER_CREATE_FAILED);
1195#if (TRC_CFG_ESP_IDF_VERSION >= TRC_ESP_IDF_VERSION_4_0_0)
1197#define traceTIMER_COMMAND_SEND_8_0_CASES(tmr) \
1198 case tmrCOMMAND_RESET: \
1199 prvTraceEventCreate2((xReturn == pdPASS) ? PSF_EVENT_TIMER_RESET : PSF_EVENT_TIMER_RESET_FAILED, (void*)(tmr), xOptionalValue); \
1201 case tmrCOMMAND_START_FROM_ISR: \
1202 prvTraceEventCreate2((xReturn == pdPASS) ? PSF_EVENT_TIMER_START_FROMISR : PSF_EVENT_TIMER_START_FROMISR_FAILED, (void*)(tmr), xOptionalValue); \
1204 case tmrCOMMAND_RESET_FROM_ISR: \
1205 prvTraceEventCreate2((xReturn == pdPASS) ? PSF_EVENT_TIMER_RESET_FROMISR : PSF_EVENT_TIMER_RESET_FROMISR_FAILED, (void*)(tmr), xOptionalValue); \
1207 case tmrCOMMAND_STOP_FROM_ISR: \
1208 prvTraceEventCreate2((xReturn == pdPASS) ? PSF_EVENT_TIMER_STOP_FROMISR : PSF_EVENT_TIMER_STOP_FROMISR_FAILED, (void*)(tmr), xOptionalValue); \
1210 case tmrCOMMAND_CHANGE_PERIOD_FROM_ISR: \
1211 prvTraceEventCreate2((xReturn == pdPASS) ? PSF_EVENT_TIMER_CHANGEPERIOD_FROMISR : PSF_EVENT_TIMER_CHANGEPERIOD_FROMISR_FAILED, (void*)(tmr), xOptionalValue); \
1215#define traceTIMER_COMMAND_SEND_8_0_CASES(tmr)
1220#undef traceTIMER_COMMAND_SEND
1221#define traceTIMER_COMMAND_SEND(tmr, xCommandID, xOptionalValue, xReturn) \
1222 switch(xCommandID) \
1224 case tmrCOMMAND_START: \
1225 prvTraceEventCreate1(((xReturn) == pdPASS) ? PSF_EVENT_TIMER_START : PSF_EVENT_TIMER_START_FAILED, (void*)(tmr)); \
1227 case tmrCOMMAND_STOP: \
1228 prvTraceEventCreate1(((xReturn) == pdPASS) ? PSF_EVENT_TIMER_STOP : PSF_EVENT_TIMER_STOP_FAILED, (void*)(tmr)); \
1230 case tmrCOMMAND_CHANGE_PERIOD: \
1231 prvTraceEventCreate2(((xReturn) == pdPASS) ? PSF_EVENT_TIMER_CHANGEPERIOD : PSF_EVENT_TIMER_CHANGEPERIOD_FAILED, (void*)(tmr), xOptionalValue); \
1233 case tmrCOMMAND_DELETE: \
1234 xTraceObjectUnregisterWithoutHandle(((xReturn) == pdPASS) ? PSF_EVENT_TIMER_DELETE : PSF_EVENT_TIMER_DELETE_FAILED, (void*)(tmr), 0); \
1236 traceTIMER_COMMAND_SEND_8_0_CASES(tmr) \
1239#undef traceTIMER_EXPIRED
1240#define traceTIMER_EXPIRED(tmr) \
1241 prvTraceEventCreate2(PSF_EVENT_TIMER_EXPIRED, (void*)(tmr), (uint32_t)((tmr)->pxCallbackFunction))
1246#if (TRC_CFG_INCLUDE_PEND_FUNC_CALL_EVENTS == 1)
1248#undef tracePEND_FUNC_CALL
1249#define tracePEND_FUNC_CALL(func, arg1, arg2, ret) \
1250 prvTraceEventCreate1(((ret) == pdPASS) ? PSF_EVENT_TIMER_PENDFUNCCALL : PSF_EVENT_TIMER_PENDFUNCCALL_FAILED, (uint32_t)(func))
1252#undef tracePEND_FUNC_CALL_FROM_ISR
1253#define tracePEND_FUNC_CALL_FROM_ISR(func, arg1, arg2, ret) \
1254 prvTraceEventCreate1(((ret) == pdPASS) ? PSF_EVENT_TIMER_PENDFUNCCALL_FROMISR : PSF_EVENT_TIMER_PENDFUNCCALL_FROMISR_FAILED, (uint32_t)(func))
1258#if (TRC_CFG_INCLUDE_EVENT_GROUP_EVENTS == 1)
1260#undef traceEVENT_GROUP_CREATE
1261#define traceEVENT_GROUP_CREATE(eg) \
1262 xTraceObjectRegisterWithoutHandle(PSF_EVENT_EVENTGROUP_CREATE, (void*)(eg), 0, (uint32_t)(eg)->uxEventBits)
1264#undef traceEVENT_GROUP_DELETE
1265#define traceEVENT_GROUP_DELETE(eg) \
1266 xTraceObjectUnregisterWithoutHandle(PSF_EVENT_EVENTGROUP_DELETE, (void*)(eg), (uint32_t)(eg)->uxEventBits)
1268#undef traceEVENT_GROUP_CREATE_FAILED
1269#define traceEVENT_GROUP_CREATE_FAILED() \
1270 prvTraceEventCreate0(PSF_EVENT_EVENTGROUP_CREATE_FAILED)
1272#undef traceEVENT_GROUP_SYNC_BLOCK
1273#define traceEVENT_GROUP_SYNC_BLOCK(eg, bitsToSet, bitsToWaitFor) \
1274 prvTraceEventCreate2(PSF_EVENT_EVENTGROUP_SYNC_BLOCK, (void*)(eg), bitsToWaitFor)
1276#undef traceEVENT_GROUP_SYNC_END
1277#define traceEVENT_GROUP_SYNC_END(eg, bitsToSet, bitsToWaitFor, wasTimeout) \
1278 prvTraceEventCreate2(((wasTimeout) != pdTRUE) ? PSF_EVENT_EVENTGROUP_SYNC : PSF_EVENT_EVENTGROUP_SYNC_FAILED, (void*)(eg), bitsToWaitFor)
1280#undef traceEVENT_GROUP_WAIT_BITS_BLOCK
1281#define traceEVENT_GROUP_WAIT_BITS_BLOCK(eg, bitsToWaitFor) \
1282 prvTraceEventCreate2(PSF_EVENT_EVENTGROUP_WAITBITS_BLOCK, (void*)(eg), bitsToWaitFor)
1284#undef traceEVENT_GROUP_WAIT_BITS_END
1285#define traceEVENT_GROUP_WAIT_BITS_END(eg, bitsToWaitFor, wasTimeout) \
1286 prvTraceEventCreate2(((wasTimeout) != pdTRUE) ? PSF_EVENT_EVENTGROUP_WAITBITS : PSF_EVENT_EVENTGROUP_WAITBITS_FAILED, (void*)(eg), bitsToWaitFor)
1288#undef traceEVENT_GROUP_CLEAR_BITS
1289#define traceEVENT_GROUP_CLEAR_BITS(eg, bitsToClear) \
1290 prvTraceEventCreate2(PSF_EVENT_EVENTGROUP_CLEARBITS, (void*)(eg), bitsToClear)
1292#undef traceEVENT_GROUP_CLEAR_BITS_FROM_ISR
1293#define traceEVENT_GROUP_CLEAR_BITS_FROM_ISR(eg, bitsToClear) \
1294 prvTraceEventCreate2(PSF_EVENT_EVENTGROUP_CLEARBITS_FROMISR, (void*)(eg), bitsToClear)
1296#undef traceEVENT_GROUP_SET_BITS
1297#define traceEVENT_GROUP_SET_BITS(eg, bitsToSet) \
1298 prvTraceEventCreate2(PSF_EVENT_EVENTGROUP_SETBITS, (void*)(eg), bitsToSet)
1300#undef traceEVENT_GROUP_SET_BITS_FROM_ISR
1301#define traceEVENT_GROUP_SET_BITS_FROM_ISR(eg, bitsToSet) \
1302 prvTraceEventCreate2(PSF_EVENT_EVENTGROUP_SETBITS_FROMISR, (void*)(eg), bitsToSet)
1306#undef traceTASK_NOTIFY
1307#if (TRC_CFG_ESP_IDF_VERSION > TRC_ESP_IDF_VERSION_4_3_0)
1309#define traceTASK_NOTIFY(index) \
1310 prvTraceEventCreate1(PSF_EVENT_TASK_NOTIFY, (void*)xTaskToNotify)
1314#define traceTASK_NOTIFY() \
1315 prvTraceEventCreate1(PSF_EVENT_TASK_NOTIFY, (void*)xTaskToNotify)
1319#undef traceTASK_NOTIFY_FROM_ISR
1320#if (TRC_CFG_ESP_IDF_VERSION > TRC_ESP_IDF_VERSION_4_3_0)
1322#define traceTASK_NOTIFY_FROM_ISR(index) \
1323 prvTraceEventCreate1(PSF_EVENT_TASK_NOTIFY_FROM_ISR, (void*)xTaskToNotify)
1327#define traceTASK_NOTIFY_FROM_ISR() \
1328 prvTraceEventCreate1(PSF_EVENT_TASK_NOTIFY_FROM_ISR, (void*)xTaskToNotify)
1333#undef traceTASK_NOTIFY_GIVE_FROM_ISR
1334#define traceTASK_NOTIFY_GIVE_FROM_ISR traceTASK_NOTIFY_FROM_ISR
1336#undef traceTASK_NOTIFY_WAIT
1337#if (TRC_CFG_ESP_IDF_VERSION >= TRC_ESP_IDF_VERSION_5_2_0)
1339#define traceTASK_NOTIFY_WAIT(index) \
1340 prvTraceEventCreate2(pxCurrentTCBs[xPortGetCoreID()]->ucNotifyState[index] == taskNOTIFICATION_RECEIVED ? PSF_EVENT_TASK_NOTIFY_WAIT : PSF_EVENT_TASK_NOTIFY_WAIT_FAILED, (void*)pxCurrentTCBs[xPortGetCoreID()], xTicksToWait)
1342#elif (TRC_CFG_ESP_IDF_VERSION > TRC_ESP_IDF_VERSION_4_3_0)
1344#define traceTASK_NOTIFY_WAIT(index) \
1345 prvTraceEventCreate2(pxCurrentTCB[xPortGetCoreID()]->ucNotifyState[index] == taskNOTIFICATION_RECEIVED ? PSF_EVENT_TASK_NOTIFY_WAIT : PSF_EVENT_TASK_NOTIFY_WAIT_FAILED, (void*)pxCurrentTCB[xPortGetCoreID()], xTicksToWait)
1347#elif (TRC_CFG_ESP_IDF_VERSION == TRC_ESP_IDF_VERSION_4_3_0)
1349#define traceTASK_NOTIFY_WAIT() \
1350 prvTraceEventCreate2(pxCurrentTCB[xPortGetCoreID()]->ucNotifyState == taskNOTIFICATION_RECEIVED ? PSF_EVENT_TASK_NOTIFY_WAIT : PSF_EVENT_TASK_NOTIFY_WAIT_FAILED, (void*)pxCurrentTCB, xTicksToWait)
1354#define traceTASK_NOTIFY_WAIT() \
1355 prvTraceEventCreate2(pxCurrentTCB[xPortGetCoreID()]->eNotifyState == eNotified ? PSF_EVENT_TASK_NOTIFY_WAIT : PSF_EVENT_TASK_NOTIFY_WAIT_FAILED, (void*)pxCurrentTCB, xTicksToWait)
1360#undef traceTASK_NOTIFY_TAKE
1361#define traceTASK_NOTIFY_TAKE traceTASK_NOTIFY_WAIT
1363#undef traceTASK_NOTIFY_WAIT_BLOCK
1364#if (TRC_CFG_ESP_IDF_VERSION >= TRC_ESP_IDF_VERSION_5_2_0)
1365#define traceTASK_NOTIFY_WAIT_BLOCK(index) \
1366 prvTraceEventCreate2(PSF_EVENT_TASK_NOTIFY_WAIT_BLOCK, (void*)pxCurrentTCBs[xPortGetCoreID()], xTicksToWait)
1368#elif (TRC_CFG_ESP_IDF_VERSION > TRC_ESP_IDF_VERSION_4_3_0)
1370#define traceTASK_NOTIFY_WAIT_BLOCK(index) \
1371 prvTraceEventCreate2(PSF_EVENT_TASK_NOTIFY_WAIT_BLOCK, (void*)pxCurrentTCB[xPortGetCoreID()], xTicksToWait)
1375#define traceTASK_NOTIFY_WAIT_BLOCK() \
1376 prvTraceEventCreate2(PSF_EVENT_TASK_NOTIFY_WAIT_BLOCK, (void*)pxCurrentTCB[xPortGetCoreID()], xTicksToWait)
1381#undef traceTASK_NOTIFY_TAKE_BLOCK
1382#define traceTASK_NOTIFY_TAKE_BLOCK traceTASK_NOTIFY_WAIT_BLOCK
1384#undef traceQUEUE_REGISTRY_ADD
1385#define traceQUEUE_REGISTRY_ADD(object, name) \
1386 xTraceObjectSetNameWithoutHandle(object, (const char*)(name));
1388#if (TRC_CFG_INCLUDE_STREAM_BUFFER_EVENTS == 1)
1390#undef traceSTREAM_BUFFER_CREATE
1391#define traceSTREAM_BUFFER_CREATE( pxStreamBuffer, xIsMessageBuffer ) \
1392 xTraceObjectRegisterWithoutHandle((xIsMessageBuffer) == 1 ? PSF_EVENT_MESSAGEBUFFER_CREATE : PSF_EVENT_STREAMBUFFER_CREATE, (void*)(pxStreamBuffer), "", (uint32_t)xBufferSizeBytes)
1394#undef traceSTREAM_BUFFER_CREATE_FAILED
1395#define traceSTREAM_BUFFER_CREATE_FAILED( xIsMessageBuffer ) \
1396 prvTraceEventCreate2((xIsMessageBuffer) == 1 ? PSF_EVENT_MESSAGEBUFFER_CREATE_FAILED : PSF_EVENT_STREAMBUFFER_CREATE_FAILED, 0 , xBufferSizeBytes)
1398#undef traceSTREAM_BUFFER_CREATE_STATIC_FAILED
1399#define traceSTREAM_BUFFER_CREATE_STATIC_FAILED( xReturn, xIsMessageBuffer ) \
1400 traceSTREAM_BUFFER_CREATE_FAILED( xIsMessageBuffer )
1402#undef traceSTREAM_BUFFER_DELETE
1403#define traceSTREAM_BUFFER_DELETE( xStreamBuffer ) \
1404 xTraceObjectUnregisterWithoutHandle(prvGetStreamBufferType(xStreamBuffer) > 0 ? PSF_EVENT_MESSAGEBUFFER_DELETE : PSF_EVENT_STREAMBUFFER_DELETE, (void*)(xStreamBuffer), prvBytesInBuffer(xStreamBuffer));
1406#undef traceSTREAM_BUFFER_RESET
1407#define traceSTREAM_BUFFER_RESET( xStreamBuffer ) \
1408 prvTraceEventCreate2(prvGetStreamBufferType(xStreamBuffer) > 0 ? PSF_EVENT_MESSAGEBUFFER_RESET : PSF_EVENT_STREAMBUFFER_RESET, (void*)(xStreamBuffer), 0)
1410#undef traceSTREAM_BUFFER_SEND
1411#define traceSTREAM_BUFFER_SEND( xStreamBuffer, xReturn ) \
1412 prvTraceEventCreate2(prvGetStreamBufferType(xStreamBuffer) > 0 ? PSF_EVENT_MESSAGEBUFFER_SEND : PSF_EVENT_STREAMBUFFER_SEND, (void*)(xStreamBuffer), prvBytesInBuffer(xStreamBuffer))
1414#undef traceBLOCKING_ON_STREAM_BUFFER_SEND
1415#define traceBLOCKING_ON_STREAM_BUFFER_SEND( xStreamBuffer ) \
1416 prvTraceEventCreate1(prvGetStreamBufferType(xStreamBuffer) > 0 ? PSF_EVENT_MESSAGEBUFFER_SEND_BLOCK : PSF_EVENT_STREAMBUFFER_SEND_BLOCK, (void*)(xStreamBuffer))
1418#undef traceSTREAM_BUFFER_SEND_FAILED
1419#define traceSTREAM_BUFFER_SEND_FAILED( xStreamBuffer ) \
1420 prvTraceEventCreate1(prvGetStreamBufferType(xStreamBuffer) > 0 ? PSF_EVENT_MESSAGEBUFFER_SEND_FAILED : PSF_EVENT_STREAMBUFFER_SEND_FAILED, (void*)(xStreamBuffer))
1422#undef traceSTREAM_BUFFER_RECEIVE
1423#define traceSTREAM_BUFFER_RECEIVE( xStreamBuffer, xReceivedLength ) \
1424 prvTraceEventCreate2(prvGetStreamBufferType(xStreamBuffer) > 0 ? PSF_EVENT_MESSAGEBUFFER_RECEIVE: PSF_EVENT_STREAMBUFFER_RECEIVE, (void*)(xStreamBuffer), prvBytesInBuffer(xStreamBuffer))
1426#undef traceBLOCKING_ON_STREAM_BUFFER_RECEIVE
1427#define traceBLOCKING_ON_STREAM_BUFFER_RECEIVE( xStreamBuffer ) \
1428 prvTraceEventCreate1(prvGetStreamBufferType(xStreamBuffer) > 0 ? PSF_EVENT_MESSAGEBUFFER_RECEIVE_BLOCK: PSF_EVENT_STREAMBUFFER_RECEIVE_BLOCK, (void*)(xStreamBuffer))
1430#undef traceSTREAM_BUFFER_RECEIVE_FAILED
1431#define traceSTREAM_BUFFER_RECEIVE_FAILED( xStreamBuffer ) \
1432 prvTraceEventCreate1(prvGetStreamBufferType(xStreamBuffer) > 0 ? PSF_EVENT_MESSAGEBUFFER_RECEIVE_FAILED: PSF_EVENT_STREAMBUFFER_RECEIVE_FAILED, (void*)(xStreamBuffer))
1434#undef traceSTREAM_BUFFER_SEND_FROM_ISR
1435#define traceSTREAM_BUFFER_SEND_FROM_ISR( xStreamBuffer, xReturn ) \
1436 if ( (xReturn) > ( size_t ) 0 ) \
1438 prvTraceEventCreate2(prvGetStreamBufferType(xStreamBuffer) > 0 ? PSF_EVENT_MESSAGEBUFFER_SEND_FROM_ISR : PSF_EVENT_STREAMBUFFER_SEND_FROM_ISR, (void*)(xStreamBuffer), prvBytesInBuffer(xStreamBuffer)); \
1442 prvTraceEventCreate1(prvGetStreamBufferType(xStreamBuffer) > 0 ? PSF_EVENT_MESSAGEBUFFER_SEND_FROM_ISR_FAILED : PSF_EVENT_STREAMBUFFER_SEND_FROM_ISR_FAILED, (void*)(xStreamBuffer)); \
1445#undef traceSTREAM_BUFFER_RECEIVE_FROM_ISR
1446#define traceSTREAM_BUFFER_RECEIVE_FROM_ISR( xStreamBuffer, xReceivedLength ) \
1447 if ( (xReceivedLength) > ( size_t ) 0 ) \
1449 prvTraceEventCreate2(prvGetStreamBufferType(xStreamBuffer) > 0 ? PSF_EVENT_MESSAGEBUFFER_RECEIVE_FROM_ISR : PSF_EVENT_STREAMBUFFER_RECEIVE_FROM_ISR, (void*)(xStreamBuffer), prvBytesInBuffer(xStreamBuffer)); \
1453 prvTraceEventCreate1(prvGetStreamBufferType(xStreamBuffer) > 0 ? PSF_EVENT_MESSAGEBUFFER_RECEIVE_FROM_ISR_FAILED : PSF_EVENT_STREAMBUFFER_RECEIVE_FROM_ISR_FAILED, (void*)(xStreamBuffer)); \
1463#define vTraceSetQueueName(object, name)
1464#define vTraceSetSemaphoreName(object, name)
1465#define vTraceSetMutexName(object, name)
1466#define vTraceSetEventGroupName(object, name)
1467#define vTraceSetStreamBufferName(object, name)
1468#define vTraceSetMessageBufferName(object, name)
A structure representing the kernel port buffer.
Definition trcKernelPort.h:97