#define xTaskGetCurrentTaskHandle MPU_xTaskGetCurrentTaskHandle\r
#define xTaskGetSchedulerState MPU_xTaskGetSchedulerState\r
#define xTaskGetIdleTaskHandle MPU_xTaskGetIdleTaskHandle\r
+ #define xTaskGetSystemState MPU_xTaskGetSystemState\r
\r
#define xQueueGenericCreate MPU_xQueueGenericCreate\r
#define xQueueCreateMutex MPU_xQueueCreateMutex\r
#define xQueueSelectFromSet MPU_xQueueSelectFromSet\r
#define xQueueAddToSet MPU_xQueueAddToSet\r
#define xQueueRemoveFromSet MPU_xQueueRemoveFromSet\r
+ #define xQueuePeekFromISR MPU_xQueuePeekFromISR\r
\r
#define pvPortMalloc MPU_pvPortMalloc\r
#define vPortFree MPU_vPortFree\r
xTaskHandle MPU_xTaskGetCurrentTaskHandle( void );\r
portBASE_TYPE MPU_xTaskGetSchedulerState( void );\r
xTaskHandle MPU_xTaskGetIdleTaskHandle( void );\r
+unsigned portBASE_TYPE MPU_xTaskGetSystemState( xTaskStatusType *pxTaskStatusArray, unsigned portBASE_TYPE uxArraySize, unsigned long *pulTotalRunTime );\r
xQueueHandle MPU_xQueueGenericCreate( unsigned portBASE_TYPE uxQueueLength, unsigned portBASE_TYPE uxItemSize, unsigned char ucQueueType );\r
signed portBASE_TYPE MPU_xQueueGenericSend( xQueueHandle xQueue, const void * const pvItemToQueue, portTickType xTicksToWait, portBASE_TYPE xCopyPosition );\r
portBASE_TYPE MPU_xQueueGenericReset( xQueueHandle pxQueue, portBASE_TYPE xNewQueue );\r
xQueueSetMemberHandle MPU_xQueueSelectFromSet( xQueueSetHandle xQueueSet, portTickType xBlockTimeTicks );\r
portBASE_TYPE MPU_xQueueAddToSet( xQueueSetMemberHandle xQueueOrSemaphore, xQueueSetHandle xQueueSet );\r
portBASE_TYPE MPU_xQueueRemoveFromSet( xQueueSetMemberHandle xQueueOrSemaphore, xQueueSetHandle xQueueSet );\r
+signed portBASE_TYPE MPU_xQueuePeekFromISR( xQueueHandle xQueue, void * const pvBuffer );\r
\r
/*-----------------------------------------------------------*/\r
\r
#endif\r
/*-----------------------------------------------------------*/\r
\r
+#if ( configUSE_TRACE_FACILITY == 1 )\r
+ unsigned portBASE_TYPE MPU_xTaskGetSystemState( xTaskStatusType *pxTaskStatusArray, unsigned portBASE_TYPE uxArraySize, unsigned long *pulTotalRunTime )\r
+ {\r
+ unsigned portBASE_TYPE uxReturn;\r
+ portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();\r
+\r
+ uxReturn = xTaskGetSystemState( pxTaskStatusArray, uxArraySize, pulTotalRunTime );\r
+ portRESET_PRIVILEGE( xRunningPrivileged );\r
+ return xReturn;\r
+ }\r
+#endif\r
+/*-----------------------------------------------------------*/\r
+\r
#if ( INCLUDE_uxTaskGetStackHighWaterMark == 1 )\r
unsigned portBASE_TYPE MPU_uxTaskGetStackHighWaterMark( xTaskHandle xTask )\r
{\r
}\r
/*-----------------------------------------------------------*/\r
\r
+signed portBASE_TYPE MPU_xQueuePeekFromISR( xQueueHandle pxQueue, void * const pvBuffer )\r
+{\r
+portBASE_TYPE xRunningPrivileged = prvRaisePrivilege();\r
+signed portBASE_TYPE xReturn;\r
+\r
+ xReturn = xQueuePeekFromISR( pxQueue, pvBuffer );\r
+ portRESET_PRIVILEGE( xRunningPrivileged );\r
+ return xReturn;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
#if ( configUSE_MUTEXES == 1 )\r
xQueueHandle MPU_xQueueCreateMutex( void )\r
{\r
\r
#if configINCLUDE_APPLICATION_DEFINED_PRIVILEGED_FUNCTIONS == 1\r
#include "application_defined_privileged_functions.h"\r
-#endif
\ No newline at end of file
+#endif\r
+\r
PRIVILEGED_DATA static xList pxReadyTasksLists[ configMAX_PRIORITIES ]; /*< Prioritised ready tasks. */\r
PRIVILEGED_DATA static xList xDelayedTaskList1; /*< Delayed tasks. */\r
PRIVILEGED_DATA static xList xDelayedTaskList2; /*< Delayed tasks (two lists are used - one for delays that have overflowed the current tick count. */\r
-PRIVILEGED_DATA static xList * volatile pxDelayedTaskList ; /*< Points to the delayed task list currently being used. */\r
+PRIVILEGED_DATA static xList * volatile pxDelayedTaskList; /*< Points to the delayed task list currently being used. */\r
PRIVILEGED_DATA static xList * volatile pxOverflowDelayedTaskList; /*< Points to the delayed task list currently being used to hold tasks that have overflowed the current tick count. */\r
PRIVILEGED_DATA static xList xPendingReadyList; /*< Tasks that have been readied while the scheduler was suspended. They will be moved to the ready list when the scheduler is resumed. */\r
\r
\r
#endif\r
\r
-/* File private variables. --------------------------------*/\r
+/* Other file private variables. --------------------------------*/\r
PRIVILEGED_DATA static volatile unsigned portBASE_TYPE uxCurrentNumberOfTasks = ( unsigned portBASE_TYPE ) 0U;\r
PRIVILEGED_DATA static volatile portTickType xTickCount = ( portTickType ) 0U;\r
PRIVILEGED_DATA static volatile unsigned portBASE_TYPE uxTopReadyPriority = tskIDLE_PRIORITY;\r