1 /* --------------------------------------------------------------------------
2 * Copyright (c) 2013-2017 ARM Limited. All rights reserved.
4 * SPDX-License-Identifier: Apache-2.0
6 * Licensed under the Apache License, Version 2.0 (the License); you may
7 * not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an AS IS BASIS, WITHOUT
14 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
18 * Name: freertos_evr.h
19 * Purpose: FreeRTOS Event Recorder definitions
21 *---------------------------------------------------------------------------*/
23 #ifndef FREERTOS_EVR_H_
24 #define FREERTOS_EVR_H_
29 #include "RTE_Components.h"
31 #if !defined(RTE_Compiler_EventRecorder)
32 /* Disable debug events if Event Recorder is not used */
33 #ifndef EVR_FREERTOS_DISABLE
34 #define EVR_FREERTOS_DISABLE
38 /* Temporarily define FreeRTOS object types */
42 #define PendedFunction_t void*
43 #define EventGroup_t void*
46 \brief Event on successful task create (Op)
47 \param[in] pxNewTCB pointer to task handle.
49 extern void EvrFreeRTOSTasks_TaskCreate (TCB_t pxNewTCB);
52 \brief Event on unsuccessful task create (Error)
54 extern void EvrFreeRTOSTasks_TaskCreateFailed (void);
57 \brief Event on task delete (Op)
58 \param[in] pxTCB pointer to task handle.
60 extern void EvrFreeRTOSTasks_TaskDelete (TCB_t pxTCB);
63 \brief Event before current running task execution is delayed (Op)
64 \param[in] xTimeToWake wake time (ticks).
66 extern void EvrFreeRTOSTasks_TaskDelayUntil (uint32_t xTimeToWake);
69 \brief Event on current thread execution delay (Op)
70 \param[in] xTicksToDelay number of ticks to delay.
72 extern void EvrFreeRTOSTasks_TaskDelay (uint32_t xTicksToDelay);
75 \brief Event on task priority set (Op)
76 \param[in] pxTCB pointer to task handle.
77 \param[in] uxNewPriority
79 extern void EvrFreeRTOSTasks_TaskPrioritySet (TCB_t pxTCB, uint32_t uxNewPriority);
82 \brief Event on task suspend (Op)
83 \param[in] pxTCB pointer to task handle.
85 extern void EvrFreeRTOSTasks_TaskSuspend (TCB_t pxTCB);
88 \brief Event on task resume (Op)
89 \param[in] pxTCB pointer to task handle.
91 extern void EvrFreeRTOSTasks_TaskResume (TCB_t pxTCB);
94 \brief Event on task resume call from ISR (Op)
95 \param[in] pxTCB pointer to task handle.
97 extern void EvrFreeRTOSTasks_TaskResumeFromIsr (TCB_t pxTCB);
100 \brief Event on tick count increment (Op)
101 \param[in] xTickCount tick count before increment.
103 extern void EvrFreeRTOSTasks_TaskIncrementTick (uint32_t xTickCount);
106 \brief Event on tick count increase (Op)
107 \param[in] xTicksToJump number of ticks by which the tick count is increased.
109 extern void EvrFreeRTOSTasks_IncreaseTickCount (uint32_t xTicksToJump);
112 \brief Event before a new task is selected to run (Op)
113 \param[in] pxCurrentTCB handle to the task about to leave the running state.
115 extern void EvrFreeRTOSTasks_TaskSwitchedOut (TCB_t pxCurrentTCB);
118 \brief Event after a task has been selected to run (Op)
119 \param[in] pxCurrentTCB handle to the task about to enter the running state.
120 \param[in] uxTopPriority pxCurrentTCB task priority.
122 extern void EvrFreeRTOSTasks_TaskSwitchedIn (TCB_t pxCurrentTCB, uint32_t uxTopPriority);
125 \brief Event on task priority inheritance (Op)
126 \param[in] pxTCBOfMutexHolder pointer to task handle.
127 \param[in] uxInheritedPriority new (inherited) task priority.
129 extern void EvrFreeRTOSTasks_TaskPriorityInherit (TCB_t pxTCBOfMutexHolder, uint32_t uxInheritedPriority);
132 \brief Event on task priority disinheritance (Op)
133 \param[in] pxTCBOfMutexHolder pointer to task handle.
134 \param[in] uxOriginalPriority old (original) task priority.
136 extern void EvrFreeRTOSTasks_TaskPriorityDisinherit (TCB_t pxTCBOfMutexHolder, uint32_t uxOriginalPriority);
139 \brief Event sent before transition of a task into the Ready state (Op)
140 \param[in] pxTCB pointer to task handle.
142 extern void EvrFreeRTOSTasks_MovedTaskToReadyState (TCB_t pxTCB);
145 \brief Event sent after transition of a task into the Ready state (Op)
146 \param[in] pxTCB pointer to task handle.
148 extern void EvrFreeRTOSTasks_PostMovedTaskToReadyState (TCB_t pxTCB);
151 \brief Event on enter to the low power mode (Op)
152 \param[in] xExpectedIdleTime expected idle time in ticks.
154 extern void EvrFreeRTOSTasks_LowPowerIdleBegin (uint32_t xExpectedIdleTime);
157 \brief Event on exit from the low power mode (Op)
159 extern void EvrFreeRTOSTasks_LowPowerIdleEnd (void);
162 \brief Event on indicating the current running task is about to block while waiting for notification to be non-zero (Op)
163 \param[in] xTicksToWait wait timeout in ticks.
165 extern void EvrFreeRTOSTasks_TaskNotifyTakeBlock (uint32_t xTicksToWait);
168 \brief Event on successful task notify take (Op)
169 \param[in] ulNotifiedValue current state of the notification value.
171 extern void EvrFreeRTOSTasks_TaskNotifyTake (uint32_t ulNotifiedValue);
174 \brief Event indicating the current running task is about to block while waiting to receive notification (Op)
175 \param[in] xTicksToWait wait timeout in ticks.
177 extern void EvrFreeRTOSTasks_TaskNotifyWaitBlock (uint32_t xTicksToWait);
180 \brief Event on successful task notify wait (Op)
181 \param[in] ulNotifiedValue current state of the notification value.
183 extern void EvrFreeRTOSTasks_TaskNotifyWait (uint32_t ulNotifiedValue);
186 \brief Event on successful task notify (Op)
187 \param[in] xTaskToNotify pointer to task to be notified.
188 \param[in] ulValue notify value.
189 \param[in] eAction task notification action.
190 \param[in] ulNotifiedValue current state of the notification value.
192 extern void EvrFreeRTOSTasks_TaskNotify (TCB_t xTaskToNotify, uint32_t ulValue, uint32_t eAction, uint32_t ulNotifiedValue);
195 \brief Event on successful task notify from ISR (Op)
196 \param[in] xTaskToNotify pointer to task to be notified.
197 \param[in] ulValue notify value.
198 \param[in] eAction task notification action.
199 \param[in] ulNotifiedValue current state of the notification value.
201 extern void EvrFreeRTOSTasks_TaskNotifyFromIsr (TCB_t xTaskToNotify, uint32_t ulValue, uint32_t eAction, uint32_t ulNotifiedValue);
204 \brief Event on successful task notify give from ISR (Op)
205 \param[in] xTaskToNotify pointer to task to be notified.
206 \param[in] ulNotifiedValue current state of the notification value.
208 extern void EvrFreeRTOSTasks_TaskNotifyGiveFromIsr (TCB_t xTaskToNotify, uint32_t ulNotifiedValue);
211 \brief Event on successful queue create (Op)
212 \param[in] pxQueue pointer to mutex object handle.
214 extern void EvrFreeRTOSQueue_QueueCreate (Queue_t pxQueue);
217 \brief Event on unsuccessful queue create (Error)
218 \param[in] ucQueueType queue type
220 extern void EvrFreeRTOSQueue_QueueCreateFailed (uint32_t ucQueueType);
223 \brief Event on successful mutex create (Op)
224 \param[in] pxNewQueue pointer to queue object handle.
226 extern void EvrFreeRTOSQueue_CreateMutex (Queue_t pxNewQueue);
229 \brief Event on unsuccessful mutex create (Error)
231 extern void EvrFreeRTOSQueue_CreateMutexFailed (void);
234 \brief Event on successful recursive mutex give (Op)
235 \param[in] pxMutex pointer to mutex object handle.
237 extern void EvrFreeRTOSQueue_GiveMutexRecursive (Queue_t pxMutex);
240 \brief Event on unsuccessful recursive mutex give (Error)
241 \param[in] pxMutex pointer to mutex object handle.
243 extern void EvrFreeRTOSQueue_GiveMutexRecursiveFailed (Queue_t pxMutex);
246 \brief Event on successful recursive mutex take (Op)
247 \param[in] pxMutex pointer to mutex object handle.
249 extern void EvrFreeRTOSQueue_TakeMutexRecursive (Queue_t pxMutex);
252 \brief Event on unsuccessful recursive mutex take (Error)
253 \param[in] pxMutex pointer to mutex object handle.
255 extern void EvrFreeRTOSQueue_TakeMutexRecursiveFailed (Queue_t pxMutex);
258 \brief Event on successful counting semaphore create (Op)
259 \param[in] xHandle pointer to semaphore object handle.
261 extern void EvrFreeRTOSQueue_CreateCountingSemaphore (Queue_t xHandle);
264 \brief Event on unsuccessful counting semaphore create (Error)
266 extern void EvrFreeRTOSQueue_CreateCountingSemaphoreFailed (void);
269 \brief Event on queue write (Op)
270 \param[in] pxQueue pointer to queue object handle.
272 extern void EvrFreeRTOSQueue_QueueSend (Queue_t pxQueue);
275 \brief Event on write to the full queue (Error)
276 \param[in] pxQueue pointer to queue object handle.
278 extern void EvrFreeRTOSQueue_QueueSendFailed (Queue_t pxQueue);
281 \brief Event on queue read (Op)
282 \param[in] pxQueue pointer to queue object handle.
284 extern void EvrFreeRTOSQueue_QueueReceive (Queue_t pxQueue);
287 \brief Event on queue peek (Op)
288 \param[in] pxQueue pointer to queue object handle.
290 extern void EvrFreeRTOSQueue_QueuePeek (Queue_t pxQueue);
293 \brief Event on queue peek from ISR (Op)
294 \param[in] pxQueue pointer to queue object handle.
296 extern void EvrFreeRTOSQueue_QueuePeekFromIsr (Queue_t pxQueue);
299 \brief Event on read from the empty queue (Error)
300 \param[in] pxQueue pointer to queue object handle.
302 extern void EvrFreeRTOSQueue_QueueReceiveFailed (Queue_t pxQueue);
305 \brief Event on write to the queue from ISR (Op)
306 \param[in] pxQueue pointer to queue object handle.
308 extern void EvrFreeRTOSQueue_QueueSendFromIsr (Queue_t pxQueue);
311 \brief Event on write to the full queue from ISR (Error)
312 \param[in] pxQueue pointer to queue object handle.
314 extern void EvrFreeRTOSQueue_QueueSendFromIsrFailed (Queue_t pxQueue);
317 \brief Event on queue read from ISR (Op)
318 \param[in] pxQueue pointer to queue object handle.
320 extern void EvrFreeRTOSQueue_QueueReceiveFromIsr (Queue_t pxQueue);
323 \brief Event on empty queue read from ISR (Error)
324 \param[in] pxQueue pointer to queue object handle.
326 extern void EvrFreeRTOSQueue_QueueReceiveFromIsrFailed (Queue_t pxQueue);
329 \brief Event on empty queue peek from ISR (Error)
330 \param[in] pxQueue pointer to queue object handle.
332 extern void EvrFreeRTOSQueue_QueuePeekFromIsrFailed (Queue_t pxQueue);
335 \brief Event on queue delete (Op)
336 \param[in] pxQueue pointer to queue object handle.
338 extern void EvrFreeRTOSQueue_QueueDelete (Queue_t pxQueue);
341 \brief Event on assignment of a human readable name to a queue (Op)
342 \param[in] pxQueue pointer to queue object handle.
343 \param[in] pcQueueName pointer to queue object name.
345 extern void EvrFreeRTOSQueue_QueueRegistryAdd (Queue_t pxQueue, const char *pcQueueName);
348 \brief Event indicating the current running task is about to block while reading from an empty queue (Op)
349 \param[in] pxQueue pointer to queue object handle.
351 extern void EvrFreeRTOSQueue_BlockingOnQueueReceive (Queue_t pxQueue);
354 \brief Event indicating the current running task is about to block while writting to a full queue (Op)
355 \param[in] pxQueue pointer to queue object handle.
357 extern void EvrFreeRTOSQueue_BlockingOnQueueSend (Queue_t pxQueue);
360 \brief Event on successful timer object create (Op)
361 \param[in] pxNewTimer pointer to timer object handle.
363 extern void EvrFreeRTOSTimers_TimerCreate (Timer_t pxNewTimer);
366 \brief Event on unsuccessful timer object create (Error)
368 extern void EvrFreeRTOSTimers_TimerCreateFailed (void);
371 \brief Event on timer queue command send (Op)
372 \param[in] pxTimer pointer to timer object handle.
373 \param[in] xCommandID timer command ID.
374 \param[in] xOptionalValue optional command value.
375 \param[in] xReturn return value.
377 extern void EvrFreeRTOSTimers_TimerCommandSend (Timer_t pxTimer, uint32_t xCommandID, uint32_t xOptionalValue, uint32_t xReturn);
380 \brief Event on timer queue command receive (Op)
381 \param[in] pxTimer pointer to timer object handle.
382 \param[in] xCommandID timer command ID.
383 \param[in] xOptionalValue optional command value.
385 extern void EvrFreeRTOSTimers_TimerCommandReceived (Timer_t pxTimer, uint32_t xCommandID, uint32_t xOptionalValue);
388 \brief Event on timer expire (Op)
389 \param[in] pxTimer pointer to timer object handle.
391 extern void EvrFreeRTOSTimers_TimerExpired (Timer_t pxTimer);
394 \brief Event on pass of the function execution to the timer service task (Op)
395 \param[in] pxFunctionToPend pointer to callback function
396 \param[in] pvParameter1 function parameter 1.
397 \param[in] ulParameter2 function parameter 2.
398 \param[in] xReturn return value.
400 extern void EvrFreeRTOSTimers_PendFuncCall (PendedFunction_t pxFunctionToPend, void *pvParameter1, uint32_t ulParameter2, uint32_t xReturn);
403 \brief Event on pass of the function execution to the timer service task from the ISR (Op)
404 \param[in] pxFunctionToPend pointer to callback function
405 \param[in] pvParameter1 function parameter 1.
406 \param[in] ulParameter2 function parameter 2.
407 \param[in] xReturn return value.
409 extern void EvrFreeRTOSTimers_PendFuncCallFromIsr (PendedFunction_t pxFunctionToPend, void *pvParameter1, uint32_t ulParameter2, uint32_t xReturn);
412 \brief Event on successful event groups object create (Op)
413 \param[in] pxEventGroup pointer to Event Groups object handle.
415 extern void EvrFreeRTOSEventGroups_EventGroupCreate (EventGroup_t pxEventGroup);
418 \brief Event on unsuccessful event groups object create (Error)
420 extern void EvrFreeRTOSEventGroups_EventGroupCreateFailed (void);
423 \brief Event on event groups sync wait start (Op)
424 \param[in] pxEventGroup pointer to Event Groups object handle.
425 \param[in] uxBitsToSet event bits that shall be set.
426 \param[in] uxBitsToWaitFor event bits to wait for.
428 extern void EvrFreeRTOSEventGroups_EventGroupSyncBlock (EventGroup_t pxEventGroup, uint32_t uxBitsToSet, uint32_t uxBitsToWaitFor);
431 \brief Event on event groups sync completed (Op)
432 \param[in] pxEventGroup pointer to Event Groups object handle.
433 \param[in] uxBitsToSet event bits that shall be set.
434 \param[in] uxBitsToWaitFor event bits to wait for.
435 \param[in] xTimeoutOccurred timeout value.
437 extern void EvrFreeRTOSEventGroups_EventGroupSyncEnd (EventGroup_t pxEventGroup, uint32_t uxBitsToSet, uint32_t uxBitsToWaitFor, uint32_t xTimeoutOccurred);
440 \brief Event on event groups bit wait start (Op)
441 \param[in] pxEventGroup pointer to Event Groups object handle.
442 \param[in] uxBitsToWaitFor event bits to wait for.
444 extern void EvrFreeRTOSEventGroups_EventGroupWaitBitsBlock (EventGroup_t pxEventGroup, uint32_t uxBitsToWaitFor);
447 \brief Event on event groups bit wait completed (Op)
448 \param[in] pxEventGroup pointer to Event Groups object handle.
449 \param[in] uxBitsToWaitFor event bits to wait for.
450 \param[in] xTimeoutOccurred timeout value.
452 extern void EvrFreeRTOSEventGroups_EventGroupWaitBitsEnd (EventGroup_t pxEventGroup, uint32_t uxBitsToWaitFor, uint32_t xTimeoutOccurred);
455 \brief Event on event groups bit clear (Op)
456 \param[in] pxEventGroup pointer to Event Groups object handle.
457 \param[in] uxBitsToClear event bits that shall be cleared.
459 extern void EvrFreeRTOSEventGroups_EventGroupClearBits (EventGroup_t pxEventGroup, uint32_t uxBitsToClear);
462 \brief Event on event groups bit clear call from ISR (Op)
463 \param[in] pxEventGroup pointer to Event Groups object handle.
464 \param[in] uxBitsToClear event bits that shall be cleared.
466 extern void EvrFreeRTOSEventGroups_EventGroupClearBitsFromIsr (EventGroup_t pxEventGroup, uint32_t uxBitsToClear);
469 \brief Event on event groups bit set (Op)
470 \param[in] pxEventGroup pointer to Event Groups object handle.
471 \param[in] uxBitsToSet event bits that shall be set.
473 extern void EvrFreeRTOSEventGroups_EventGroupSetBits (EventGroup_t pxEventGroup, uint32_t uxBitsToSet);
476 \brief Event on event groups bit set call from ISR (Op)
477 \param[in] pxEventGroup pointer to Event Groups object handle.
478 \param[in] uxBitsToSet event bits that shall be set.
480 extern void EvrFreeRTOSEventGroups_EventGroupSetBitsFromIsr (EventGroup_t pxEventGroup, uint32_t uxBitsToSet);
483 \brief Event on event groups object delete (Op)
484 \param[in] pxEventGroup pointer to Event Groups object handle.
486 extern void EvrFreeRTOSEventGroups_EventGroupDelete (EventGroup_t pxEventGroup);
489 \brief Event on heap memory block allocation (Op)
490 \param[in] pvAddress pointer to memory block.
491 \param[in] uiSize memory block size.
493 extern void EvrFreeRTOSHeap_Malloc (void *pvAddress, uint32_t uiSize);
496 \brief Event on heap memory block free (Op)
497 \param[in] pvAddress pointer to memory block.
498 \param[in] uiSize memory block size.
500 extern void EvrFreeRTOSHeap_Free (void *pvAddress, uint32_t uiSize);
505 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTASK_CREATE_DISABLE))
506 #define traceTASK_CREATE(px) EvrFreeRTOSTasks_TaskCreate(px)
509 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTASK_CREATE_FAILED_DISABLE))
510 #define traceTASK_CREATE_FAILED() EvrFreeRTOSTasks_TaskCreateFailed()
513 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTASK_DELETE_DISABLE))
514 #define traceTASK_DELETE(px) EvrFreeRTOSTasks_TaskDelete(px)
517 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTASK_DELAY_UNTIL_DISABLE))
518 #define traceTASK_DELAY_UNTIL(x) EvrFreeRTOSTasks_TaskDelayUntil(x)
521 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTASK_DELAY_DISABLE))
522 #define traceTASK_DELAY() EvrFreeRTOSTasks_TaskDelay(xTicksToDelay)
525 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTASK_PRIORITY_SET_DISABLE))
526 #define traceTASK_PRIORITY_SET(px,ux) EvrFreeRTOSTasks_TaskPrioritySet(px,ux)
529 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTASK_SUSPEND_DISABLE))
530 #define traceTASK_SUSPEND(px) EvrFreeRTOSTasks_TaskSuspend(px)
533 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTASK_RESUME_DISABLE))
534 #define traceTASK_RESUME(px) EvrFreeRTOSTasks_TaskResume(px)
537 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTASK_RESUME_FROM_ISR_DISABLE))
538 #define traceTASK_RESUME_FROM_ISR(px) EvrFreeRTOSTasks_TaskResumeFromIsr(px)
541 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTASK_INCREMENT_TICK_DISABLE))
542 #define traceTASK_INCREMENT_TICK(x) EvrFreeRTOSTasks_TaskIncrementTick(x)
545 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceINCREASE_TICK_COUNT_DISABLE))
546 #define traceINCREASE_TICK_COUNT(x) EvrFreeRTOSTasks_IncreaseTickCount(x)
549 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTASK_SWITCHED_OUT_DISABLE))
550 #define traceTASK_SWITCHED_OUT() EvrFreeRTOSTasks_TaskSwitchedOut(pxCurrentTCB)
553 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTASK_SWITCHED_IN_DISABLE))
554 #define traceTASK_SWITCHED_IN() EvrFreeRTOSTasks_TaskSwitchedIn(pxCurrentTCB, uxTopReadyPriority)
557 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTASK_PRIORITY_INHERIT_DISABLE))
558 #define traceTASK_PRIORITY_INHERIT(px,ux) EvrFreeRTOSTasks_TaskPriorityInherit(px,ux)
561 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTASK_PRIORITY_DISINHERIT_DISABLE))
562 #define traceTASK_PRIORITY_DISINHERIT(px,ux) EvrFreeRTOSTasks_TaskPriorityDisinherit(px,ux)
565 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceMOVED_TASK_TO_READY_STATE_DISABLE))
566 #define traceMOVED_TASK_TO_READY_STATE(px) EvrFreeRTOSTasks_MovedTaskToReadyState(px)
569 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(tracePOST_MOVED_TASK_TO_READY_STATE_DISABLE))
570 #define tracePOST_MOVED_TASK_TO_READY_STATE(px) EvrFreeRTOSTasks_PostMovedTaskToReadyState(px)
573 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceLOW_POWER_IDLE_BEGIN_DISABLE))
574 #define traceLOW_POWER_IDLE_BEGIN() EvrFreeRTOSTasks_LowPowerIdleBegin(xExpectedIdleTime)
577 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceLOW_POWER_IDLE_END_DISABLE))
578 #define traceLOW_POWER_IDLE_END() EvrFreeRTOSTasks_LowPowerIdleEnd()
581 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTASK_NOTIFY_TAKE_BLOCK_DISABLE))
582 #define traceTASK_NOTIFY_TAKE_BLOCK() EvrFreeRTOSTasks_TaskNotifyTakeBlock(xTicksToWait)
585 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTASK_NOTIFY_TAKE_DISABLE))
586 #define traceTASK_NOTIFY_TAKE() EvrFreeRTOSTasks_TaskNotifyTake(pxCurrentTCB->ulNotifiedValue)
589 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTASK_NOTIFY_WAIT_BLOCK_DISABLE))
590 #define traceTASK_NOTIFY_WAIT_BLOCK() EvrFreeRTOSTasks_TaskNotifyWaitBlock(xTicksToWait)
593 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTASK_NOTIFY_WAIT_DISABLE))
594 #define traceTASK_NOTIFY_WAIT() EvrFreeRTOSTasks_TaskNotifyWait(pxCurrentTCB->ulNotifiedValue)
597 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTASK_NOTIFY_DISABLE))
598 #define traceTASK_NOTIFY() EvrFreeRTOSTasks_TaskNotify(pxTCB, ulValue, eAction, pxTCB->ulNotifiedValue)
601 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTASK_NOTIFY_FROM_ISR_DISABLE))
602 #define traceTASK_NOTIFY_FROM_ISR() EvrFreeRTOSTasks_TaskNotifyFromIsr(pxTCB, ulValue, eAction, pxTCB->ulNotifiedValue)
605 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTASK_NOTIFY_GIVE_FROM_ISR_DISABLE))
606 #define traceTASK_NOTIFY_GIVE_FROM_ISR() EvrFreeRTOSTasks_TaskNotifyGiveFromIsr(pxTCB, pxTCB->ulNotifiedValue)
612 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceQUEUE_CREATE_DISABLE))
613 #define traceQUEUE_CREATE(px) EvrFreeRTOSQueue_QueueCreate(px)
616 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceQUEUE_CREATE_FAILED_DISABLE))
617 #define traceQUEUE_CREATE_FAILED(uc) EvrFreeRTOSQueue_QueueCreateFailed(uc)
620 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceCREATE_MUTEX_DISABLE))
621 #define traceCREATE_MUTEX(px) EvrFreeRTOSQueue_CreateMutex(px)
624 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceCREATE_MUTEX_FAILED_DISABLE))
625 #define traceCREATE_MUTEX_FAILED() EvrFreeRTOSQueue_CreateMutexFailed()
628 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceGIVE_MUTEX_RECURSIVE_DISABLE))
629 #define traceGIVE_MUTEX_RECURSIVE(px) EvrFreeRTOSQueue_GiveMutexRecursive(px)
632 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceGIVE_MUTEX_RECURSIVE_FAILED_DISABLE))
633 #define traceGIVE_MUTEX_RECURSIVE_FAILED(px) EvrFreeRTOSQueue_GiveMutexRecursiveFailed(px)
636 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTAKE_MUTEX_RECURSIVE_DISABLE))
637 #define traceTAKE_MUTEX_RECURSIVE(px) EvrFreeRTOSQueue_TakeMutexRecursive(px)
640 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTAKE_MUTEX_RECURSIVE_FAILED_DISABLE))
641 #define traceTAKE_MUTEX_RECURSIVE_FAILED(px) EvrFreeRTOSQueue_TakeMutexRecursiveFailed(px)
644 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceCREATE_COUNTING_SEMAPHORE_DISABLE))
645 #define traceCREATE_COUNTING_SEMAPHORE() EvrFreeRTOSQueue_CreateCountingSemaphore(xHandle)
648 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceCREATE_COUNTING_SEMAPHORE_FAILED_DISABLE))
649 #define traceCREATE_COUNTING_SEMAPHORE_FAILED() EvrFreeRTOSQueue_CreateCountingSemaphoreFailed()
652 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceQUEUE_SEND_DISABLE))
653 #define traceQUEUE_SEND(px) EvrFreeRTOSQueue_QueueSend(px)
656 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceQUEUE_SEND_FAILED_DISABLE))
657 #define traceQUEUE_SEND_FAILED(px) EvrFreeRTOSQueue_QueueSendFailed(px)
660 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceQUEUE_RECEIVE_DISABLE))
661 #define traceQUEUE_RECEIVE(px) EvrFreeRTOSQueue_QueueReceive(px)
664 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceQUEUE_PEEK_DISABLE))
665 #define traceQUEUE_PEEK(px) EvrFreeRTOSQueue_QueuePeek(px)
668 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceQUEUE_PEEK_FROM_ISR_DISABLE))
669 #define traceQUEUE_PEEK_FROM_ISR(px) EvrFreeRTOSQueue_QueuePeekFromIsr(px)
672 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceQUEUE_RECEIVE_FAILED_DISABLE))
673 #define traceQUEUE_RECEIVE_FAILED(px) EvrFreeRTOSQueue_QueueReceiveFailed(px)
676 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceQUEUE_SEND_FROM_ISR_DISABLE))
677 #define traceQUEUE_SEND_FROM_ISR(px) EvrFreeRTOSQueue_QueueSendFromIsr(px)
680 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceQUEUE_SEND_FROM_ISR_FAILED_DISABLE))
681 #define traceQUEUE_SEND_FROM_ISR_FAILED(px) EvrFreeRTOSQueue_QueueSendFromIsrFailed(px)
684 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceQUEUE_RECEIVE_FROM_ISR_DISABLE))
685 #define traceQUEUE_RECEIVE_FROM_ISR(px) EvrFreeRTOSQueue_QueueReceiveFromIsr(px)
688 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceQUEUE_RECEIVE_FROM_ISR_FAILED_DISABLE))
689 #define traceQUEUE_RECEIVE_FROM_ISR_FAILED(px) EvrFreeRTOSQueue_QueueReceiveFromIsrFailed(px)
692 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceQUEUE_PEEK_FROM_ISR_FAILED_DISABLE))
693 #define traceQUEUE_PEEK_FROM_ISR_FAILED(px) EvrFreeRTOSQueue_QueuePeekFromIsrFailed(px)
696 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceQUEUE_DELETE_DISABLE))
697 #define traceQUEUE_DELETE(px) EvrFreeRTOSQueue_QueueDelete(px)
700 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceQUEUE_REGISTRY_ADD_DISABLE))
701 #define traceQUEUE_REGISTRY_ADD(px,pc) EvrFreeRTOSQueue_QueueRegistryAdd(px,pc)
704 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceBLOCKING_ON_QUEUE_RECEIVE_DISABLE))
705 #define traceBLOCKING_ON_QUEUE_RECEIVE(px) EvrFreeRTOSQueue_BlockingOnQueueReceive(px)
708 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceBLOCKING_ON_QUEUE_SEND_DISABLE))
709 #define traceBLOCKING_ON_QUEUE_SEND(px) EvrFreeRTOSQueue_BlockingOnQueueSend(px)
715 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTIMER_CREATE_DISABLE))
716 #define traceTIMER_CREATE(px) EvrFreeRTOSTimers_TimerCreate(px)
719 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTIMER_CREATE_FAILED_DISABLE))
720 #define traceTIMER_CREATE_FAILED() EvrFreeRTOSTimers_TimerCreateFailed()
723 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTIMER_COMMAND_SEND_DISABLE))
724 #define traceTIMER_COMMAND_SEND(pxT,xC,xO,xR) EvrFreeRTOSTimers_TimerCommandSend(pxT,xC,xO,xR)
727 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTIMER_COMMAND_RECEIVED_DISABLE))
728 #define traceTIMER_COMMAND_RECEIVED(px,xC,xO) EvrFreeRTOSTimers_TimerCommandReceived(px,xC,xO)
731 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTIMER_EXPIRED_DISABLE))
732 #define traceTIMER_EXPIRED(px) EvrFreeRTOSTimers_TimerExpired(px)
735 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(tracePEND_FUNC_CALL_DISABLE))
736 #define tracePEND_FUNC_CALL(px,pv,ul,x) EvrFreeRTOSTimers_PendFuncCall(px,pv,ul,x)
739 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(tracePEND_FUNC_CALL_FROM_ISR_DISABLE))
740 #define tracePEND_FUNC_CALL_FROM_ISR(px,pv,ul,x) EvrFreeRTOSTimers_PendFuncCallFromIsr(px,pv,ul,x)
746 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceEVENT_GROUP_CREATE_DISABLE))
747 #define traceEVENT_GROUP_CREATE(px) EvrFreeRTOSEventGroups_EventGroupCreate(px)
750 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceEVENT_GROUP_CREATE_FAILED_DISABLE))
751 #define traceEVENT_GROUP_CREATE_FAILED() EvrFreeRTOSEventGroups_EventGroupCreateFailed()
754 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceEVENT_GROUP_SYNC_BLOCK_DISABLE))
755 #define traceEVENT_GROUP_SYNC_BLOCK(px,uxS,uxW) EvrFreeRTOSEventGroups_EventGroupSyncBlock(px,uxS,uxW)
758 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceEVENT_GROUP_SYNC_END_DISABLE))
759 #define traceEVENT_GROUP_SYNC_END(px,uxS,uxW,x) EvrFreeRTOSEventGroups_EventGroupSyncEnd(px,uxS,uxW,x)
762 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceEVENT_GROUP_WAIT_BITS_BLOCK_DISABLE))
763 #define traceEVENT_GROUP_WAIT_BITS_BLOCK(px,ux) EvrFreeRTOSEventGroups_EventGroupWaitBitsBlock(px,ux)
766 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceEVENT_GROUP_WAIT_BITS_END_DISABLE))
767 #define traceEVENT_GROUP_WAIT_BITS_END(px,ux,x) EvrFreeRTOSEventGroups_EventGroupWaitBitsEnd(px,ux,x)
770 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceEVENT_GROUP_CLEAR_BITS_DISABLE))
771 #define traceEVENT_GROUP_CLEAR_BITS(px,ux) EvrFreeRTOSEventGroups_EventGroupClearBits(px,ux)
774 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceEVENT_GROUP_CLEAR_BITS_FROM_ISR_DISABLE))
775 #define traceEVENT_GROUP_CLEAR_BITS_FROM_ISR(px,ux) EvrFreeRTOSEventGroups_EventGroupClearBitsFromIsr(px,ux)
778 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceEVENT_GROUP_SET_BITS_DISABLE))
779 #define traceEVENT_GROUP_SET_BITS(px,ux) EvrFreeRTOSEventGroups_EventGroupSetBits(px,ux)
782 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceEVENT_GROUP_SET_BITS_FROM_ISR_DISABLE))
783 #define traceEVENT_GROUP_SET_BITS_FROM_ISR(px,ux) EvrFreeRTOSEventGroups_EventGroupSetBitsFromIsr(px,ux)
786 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceEVENT_GROUP_DELETE_DISABLE))
787 #define traceEVENT_GROUP_DELETE(px) EvrFreeRTOSEventGroups_EventGroupDelete(px)
793 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceMALLOC_DISABLE))
794 #define traceMALLOC(pv,x) EvrFreeRTOSHeap_Malloc(pv,x)
797 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceFREE_DISABLE))
798 #define traceFREE(pv,x) EvrFreeRTOSHeap_Free(pv,x)
802 /* Undefine FreeRTOS object types */
806 #undef PendedFunction_t
809 #endif /* FREERTOS_EVR_H_ */