Percepio Trace Recorder v4.11.0
Loading...
Searching...
No Matches
Trace Task APIs

Macros

#define xTraceTaskRegister(pvTask, szName, uxPriority, pxTaskHandle)
 Register trace task in the trace.
#define xTraceTaskUnregister(xTaskHandle, uxPriority)
 Unregister trace task from trace.
#define xTraceTaskSetName   xTraceObjectSetName
 Sets trace task name.
#define xTraceTaskGetName   xTraceObjectGetName
 Gets trace task name.
#define xTraceTaskRegisterWithoutHandle(pvTask, szName, uxPriority)
 Registers trace task without trace task handle.
#define xTraceTaskUnregisterWithoutHandle(pvTask, uxPriority)
 Unregisters trace task without trace task handle.
#define xTraceTaskSetNameWithoutHandle   xTraceObjectSetNameWithoutHandle
 Sets trace task name without trace task handle.
#define xTraceTaskSetCurrentOnCore(coreId, pvTask)
 Sets current trace task on specific core.
#define xTraceTaskSetCurrent(pvTask)
 Sets current trace task on current core.
#define xTraceTaskGetCurrentOnCore(coreId, ppvTask)
 Gets current trace task on specific core.
#define xTraceTaskGetCurrent(ppvTask)
 Gets current trace task on current core.
#define xTraceTaskGetCurrentOnCoreReturn(coreId)
 Returns current trace task on specific core.
#define xTraceTaskGetCurrentReturn()
 Returns current trace task.
#define xTraceTaskInstanceFinishedNow()
 Registers trace task instance finished event.
#define xTraceTaskInstanceFinishedNext()
 Marks the current trace task instance as finished on the next kernel call.
#define xTraceTaskFind(pvTask, pxTaskHandle)
 Get the TraceTaskHandle_t of the task.
#define xTraceTaskGetAddress(xTaskHandle, ppvTask)
 Get the task's address from task handle.
#define pvTraceTaskGetAddressReturn(xTaskHandle)
 Returns the task's address from task handle.

Functions

traceResult xTraceTaskSetPriority (TraceTaskHandle_t xTaskHandle, TraceUnsignedBaseType_t uxPriority)
 Sets trace task priority.
traceResult xTraceTaskSetPriorityWithoutHandle (void *pvTask, TraceUnsignedBaseType_t uxPriority)
 Sets trace task priority without trace task handle.
traceResult xTraceTaskSwitch (void *pvTask, TraceUnsignedBaseType_t uxPriority)
 Registers trace task switch event.

Detailed Description

Macro Definition Documentation

◆ pvTraceTaskGetAddressReturn

#define pvTraceTaskGetAddressReturn ( xTaskHandle)
Value:
pvTraceObjectGetAddressReturn((TraceObjectHandle_t)xTaskHandle)
#define pvTraceObjectGetAddressReturn(xObjectHandle)
Returns trace object address.
Definition trcObject.h:108

Returns the task's address from task handle.

Parameters
[in]xTaskHandleTask handle.
Return values
TRC_FAILFailure
TRC_SUCCESSSuccess

◆ xTraceTaskFind

#define xTraceTaskFind ( pvTask,
pxTaskHandle )
Value:
xTraceObjectFind(pvTask, (TraceObjectHandle_t*)pxTaskHandle)
#define xTraceObjectFind(pvObject, pxObjectHandle)
Get the TraceObjectHandle_t of the object.
Definition trcObject.h:272

Get the TraceTaskHandle_t of the task.

Parameters
[in]pvTaskTask.
[out]pxTaskHandlePointer to returned task handle.
Return values
TRC_FAILFailure
TRC_SUCCESSSuccess

◆ xTraceTaskGetAddress

#define xTraceTaskGetAddress ( xTaskHandle,
ppvTask )
Value:
xTraceObjectGetAddress((TraceObjectHandle_t)xTaskHandle, ppvTask)
#define xTraceObjectGetAddress(xObjectHandle, ppvAddress)
Gets trace object address.
Definition trcObject.h:98

Get the task's address from task handle.

Parameters
[in]xTaskHandleTask handle.
[out]ppvTaskPointer to returned task address.
Return values
TRC_FAILFailure
TRC_SUCCESSSuccess

◆ xTraceTaskGetCurrent

#define xTraceTaskGetCurrent ( ppvTask)
Value:
xTraceTaskGetCurrentOnCore(TRC_CFG_GET_CURRENT_CORE(), ppvTask)
#define xTraceTaskGetCurrentOnCore(coreId, ppvTask)
Gets current trace task on specific core.
Definition trcTask.h:214

Gets current trace task on current core.

Parameters
[out]ppvTaskTask.
Return values
TRC_FAILFailure
TRC_SUCCESSSuccess

◆ xTraceTaskGetCurrentOnCore

#define xTraceTaskGetCurrentOnCore ( coreId,
ppvTask )
Value:
TRC_COMMA_EXPR_TO_STATEMENT_EXPR_2(*(ppvTask) = pxTraceTaskData->coreTasks[coreId], TRC_SUCCESS)

Gets current trace task on specific core.

Parameters
[in]coreIdCore id.
[out]ppvTaskTask.
Return values
TRC_FAILFailure
TRC_SUCCESSSuccess

◆ xTraceTaskGetCurrentOnCoreReturn

#define xTraceTaskGetCurrentOnCoreReturn ( coreId)
Value:
(pxTraceTaskData->coreTasks[coreId])

Returns current trace task on specific core.

Parameters
[in]coreIdCore id.
Return values
TRC_FAILFailure
TRC_SUCCESSSuccess

◆ xTraceTaskGetCurrentReturn

#define xTraceTaskGetCurrentReturn ( )
Value:
xTraceTaskGetCurrentOnCoreReturn(TRC_CFG_GET_CURRENT_CORE())
#define xTraceTaskGetCurrentOnCoreReturn(coreId)
Returns current trace task on specific core.
Definition trcTask.h:234

Returns current trace task.

Returns
Current trace task.

◆ xTraceTaskGetName

#define xTraceTaskGetName   xTraceObjectGetName

Gets trace task name.

Parameters
[in]xTaskHandlePointer to initialized trace object.
[out]pszNamePointer to name variable.
Return values
TRC_FAILFailure
TRC_SUCCESSSuccess

◆ xTraceTaskInstanceFinishedNext

#define xTraceTaskInstanceFinishedNext ( )
Value:
xTraceEventCreate0(PSF_EVENT_IFE_NEXT)
traceResult xTraceEventCreate0(uint32_t uiEventCode)
Creates an event with 0 parameters.
Definition trcCTI.c:1226

Marks the current trace task instance as finished on the next kernel call.

If that kernel call is blocking, the instance ends after the blocking event and the corresponding return event is then the start of the next instance. If the kernel call is not blocking, the viewer instead splits the current fragment right before the kernel call, which makes this call the first event of the next instance.

Return values
TRC_FAILFailure
TRC_SUCCESSSuccess

◆ xTraceTaskInstanceFinishedNow

#define xTraceTaskInstanceFinishedNow ( )
Value:
xTraceEventCreate0(PSF_EVENT_IFE_DIRECT)

Registers trace task instance finished event.

This routine creates a trace event that ends the current task instance at this very instant. This makes the viewer split the current fragment at this point and begin a new actor instance, even if no task-switch has occurred

Return values
TRC_FAILFailure
TRC_SUCCESSSuccess

◆ xTraceTaskRegister

#define xTraceTaskRegister ( pvTask,
szName,
uxPriority,
pxTaskHandle )
Value:
((((pvTask) != 0) && (xTraceObjectRegister(PSF_EVENT_TASK_CREATE, pvTask, szName, uxPriority, (TraceObjectHandle_t*)(pxTaskHandle)) == TRC_SUCCESS)) ? ((void)xTraceStackMonitorAdd(pvTask), TRC_SUCCESS) : TRC_FAIL)
traceResult xTraceObjectRegister(uint32_t uiEventCode, void *const pvObject, const char *szName, TraceUnsignedBaseType_t uxState, TraceObjectHandle_t *pxObjectHandle)
Registers trace object.
Definition trcObject.c:107
traceResult xTraceStackMonitorAdd(void *pvTask)
Adds task/thread to trace stack monitor.
Definition trcStackMonitor.c:42

Register trace task in the trace.

Parameters
[in]pvTaskTask.
[in]szNameName.
[in]uxPriorityPriority.
[out]pxTaskHandlePointer to uninitialized trace task.
Return values
TRC_FAILFailure
TRC_SUCCESSSuccess

◆ xTraceTaskRegisterWithoutHandle

#define xTraceTaskRegisterWithoutHandle ( pvTask,
szName,
uxPriority )
Value:
((((pvTask) != 0) && (xTraceObjectRegisterWithoutHandle(PSF_EVENT_TASK_CREATE, pvTask, szName, uxPriority) == TRC_SUCCESS)) ? ((void)xTraceStackMonitorAdd(pvTask), TRC_SUCCESS) : TRC_FAIL)
traceResult xTraceObjectRegisterWithoutHandle(uint32_t uiEventCode, void *pvObject, const char *szName, TraceUnsignedBaseType_t uxState)
Registers trace object without trace object handle.
Definition trcObject.c:185

Registers trace task without trace task handle.

Parameters
[in]pvTaskTask.
[in]szNameName.
[in]uxPriorityPriority.
Return values
TRC_FAILFailure
TRC_SUCCESSSuccess

◆ xTraceTaskSetCurrent

#define xTraceTaskSetCurrent ( pvTask)
Value:
xTraceTaskSetCurrentOnCore(TRC_CFG_GET_CURRENT_CORE(), pvTask)
#define xTraceTaskSetCurrentOnCore(coreId, pvTask)
Sets current trace task on specific core.
Definition trcTask.h:193

Sets current trace task on current core.

Parameters
[in]pvTaskTask.
Return values
TRC_FAILFailure
TRC_SUCCESSSuccess

◆ xTraceTaskSetCurrentOnCore

#define xTraceTaskSetCurrentOnCore ( coreId,
pvTask )
Value:
TRC_COMMA_EXPR_TO_STATEMENT_EXPR_2(pxTraceTaskData->coreTasks[coreId] = (pvTask), TRC_SUCCESS)

Sets current trace task on specific core.

Parameters
[in]coreIdCore id.
[in]pvTaskTask.
Return values
TRC_FAILFailure
TRC_SUCCESSSuccess

◆ xTraceTaskSetName

#define xTraceTaskSetName   xTraceObjectSetName

Sets trace task name.

Parameters
[in]pvTaskTask.
[in]szNameName.
Return values
TRC_FAILFailure
TRC_SUCCESSSuccess

◆ xTraceTaskSetNameWithoutHandle

#define xTraceTaskSetNameWithoutHandle   xTraceObjectSetNameWithoutHandle

Sets trace task name without trace task handle.

Parameters
[in]pvTaskTask.
[in]szNameName.
Return values
TRC_FAILFailure
TRC_SUCCESSSuccess

◆ xTraceTaskUnregister

#define xTraceTaskUnregister ( xTaskHandle,
uxPriority )
Value:
TRC_COMMA_EXPR_TO_STATEMENT_EXPR_3((void)xTraceStackMonitorRemove(pvTraceEntryGetAddressReturn((TraceEntryHandle_t)(xTaskHandle))), (void)xTraceTaskMonitorUnregister(pvTraceEntryGetAddressReturn((TraceEntryHandle_t)(xTaskHandle))), xTraceObjectUnregister((TraceObjectHandle_t)(xTaskHandle), PSF_EVENT_TASK_DELETE, uxPriority))
traceResult xTraceObjectUnregister(TraceObjectHandle_t xObjectHandle, uint32_t uiEventCode, TraceUnsignedBaseType_t uxState)
Unregisters trace object.
Definition trcObject.c:119
traceResult xTraceStackMonitorRemove(void *pvTask)
Removes task/thread from trace stack monitor.
Definition trcStackMonitor.c:81

Unregister trace task from trace.

Parameters
[in]xTaskHandlePointer to initialized trace task.
[in]uxPriorityPriority.
Return values
TRC_FAILFailure
TRC_SUCCESSSuccess

◆ xTraceTaskUnregisterWithoutHandle

#define xTraceTaskUnregisterWithoutHandle ( pvTask,
uxPriority )
Value:
TRC_COMMA_EXPR_TO_STATEMENT_EXPR_2((void)xTraceStackMonitorRemove(pvTask), xTraceObjectUnregisterWithoutHandle(PSF_EVENT_TASK_DELETE, pvTask, uxPriority))
traceResult xTraceObjectUnregisterWithoutHandle(uint32_t uiEventCode, void *pvObject, TraceUnsignedBaseType_t uxState)
Unregisters trace object without trace object handle.
Definition trcObject.c:201

Unregisters trace task without trace task handle.

Parameters
[in]pvTaskTask.
[in]uxPriorityPriority.
Return values
TRC_FAILFailure
TRC_SUCCESSSuccess

Function Documentation

◆ xTraceTaskSetPriority()

traceResult xTraceTaskSetPriority ( TraceTaskHandle_t xTaskHandle,
TraceUnsignedBaseType_t uxPriority )

Sets trace task priority.

Parameters
[in]xTaskHandlePointer to initialized trace task.
[in]uxPriorityPriority.
Return values
TRC_FAILFailure
TRC_SUCCESSSuccess

◆ xTraceTaskSetPriorityWithoutHandle()

traceResult xTraceTaskSetPriorityWithoutHandle ( void * pvTask,
TraceUnsignedBaseType_t uxPriority )

Sets trace task priority without trace task handle.

Parameters
[in]pvTaskTask.
[in]uxPriorityPriority.
Return values
TRC_FAILFailure
TRC_SUCCESSSuccess

◆ xTraceTaskSwitch()

traceResult xTraceTaskSwitch ( void * pvTask,
TraceUnsignedBaseType_t uxPriority )

Registers trace task switch event.

Parameters
[in]pvTaskTask.
[in]uxPriorityPriority.
Return values
TRC_FAILFailure
TRC_SUCCESSSuccess