24
24
void printRunningTasks (Print & printer) {
25
25
#if CONFIG_FREERTOS_USE_TRACE_FACILITY
26
26
#if CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS
27
- #define FREERTOS_TASK_NUMBER_MAX_NUM 256
28
- static UBaseType_t ulRunTimeCounters[FREERTOS_TASK_NUMBER_MAX_NUM];
27
+ #define FREERTOS_TASK_NUMBER_MAX_NUM 256 // RunTime stats for how many Tasks to be stored
28
+ static configRUN_TIME_COUNTER_TYPE ulRunTimeCounters[FREERTOS_TASK_NUMBER_MAX_NUM];
29
29
static configRUN_TIME_COUNTER_TYPE ulLastRunTime = 0 ;
30
+ configRUN_TIME_COUNTER_TYPE ulCurrentRunTime = 0 , ulTaskRunTime = 0 ;
30
31
#endif
32
+ configRUN_TIME_COUNTER_TYPE ulTotalRunTime = 0 ;
31
33
TaskStatus_t *pxTaskStatusArray = NULL ;
32
34
volatile UBaseType_t uxArraySize = 0 , x = 0 ;
33
- configRUN_TIME_COUNTER_TYPE ulTotalRunTime = 0 , uiCurrentRunTime = 0 , uiTaskRunTime = 0 ;
34
35
const char * taskStates[] = {
35
36
" Running" ,
36
37
" Ready" ,
@@ -42,16 +43,16 @@ void printRunningTasks(Print & printer) {
42
43
43
44
// Take a snapshot of the number of tasks in case it changes while this function is executing.
44
45
uxArraySize = uxTaskGetNumberOfTasks ();
45
- // printer.printf("Running tasks: %u\n", uxArraySize);
46
46
47
47
// Allocate a TaskStatus_t structure for each task.
48
- pxTaskStatusArray = (TaskStatus_t*)pvPortMalloc ( uxArraySize * sizeof ( TaskStatus_t ) );
48
+ pxTaskStatusArray = (TaskStatus_t*)pvPortMalloc (uxArraySize * sizeof (TaskStatus_t) );
49
49
50
- if ( pxTaskStatusArray != NULL ) {
50
+ if ( pxTaskStatusArray != NULL ) {
51
51
// Generate raw status information about each task.
52
- uxArraySize = uxTaskGetSystemState ( pxTaskStatusArray, uxArraySize, &ulTotalRunTime );
52
+ uxArraySize = uxTaskGetSystemState (pxTaskStatusArray, uxArraySize, &ulTotalRunTime);
53
+
53
54
#if CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS
54
- uiCurrentRunTime = ulTotalRunTime - ulLastRunTime;
55
+ ulCurrentRunTime = ulTotalRunTime - ulLastRunTime;
55
56
ulLastRunTime = ulTotalRunTime;
56
57
#endif
57
58
printer.printf (" Tasks: %u"
@@ -60,7 +61,7 @@ void printRunningTasks(Print & printer) {
60
61
#endif
61
62
" \n " , uxArraySize
62
63
#if CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS
63
- , ulTotalRunTime / 1000000 , uiCurrentRunTime
64
+ , ulTotalRunTime / 1000000 , ulCurrentRunTime
64
65
#endif
65
66
);
66
67
printer.printf (" Num\t Name"
@@ -72,14 +73,14 @@ void printRunningTasks(Print & printer) {
72
73
" \t Core"
73
74
#endif
74
75
" \t State\r\n " );
75
- for ( x = 0 ; x < uxArraySize; x++ ) {
76
+ for ( x = 0 ; x < uxArraySize; x++) {
76
77
#if CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS
77
- if (pxTaskStatusArray[ x ].xTaskNumber < FREERTOS_TASK_NUMBER_MAX_NUM) {
78
- uiTaskRunTime = (pxTaskStatusArray[ x ].ulRunTimeCounter - ulRunTimeCounters[pxTaskStatusArray[ x ].xTaskNumber ]);
79
- ulRunTimeCounters[pxTaskStatusArray[ x ].xTaskNumber ] = pxTaskStatusArray[ x ].ulRunTimeCounter ;
80
- uiTaskRunTime = (uiTaskRunTime * 100 ) / uiCurrentRunTime ; // in percentage
78
+ if (pxTaskStatusArray[x ].xTaskNumber < FREERTOS_TASK_NUMBER_MAX_NUM) {
79
+ ulTaskRunTime = (pxTaskStatusArray[x ].ulRunTimeCounter - ulRunTimeCounters[pxTaskStatusArray[x ].xTaskNumber ]);
80
+ ulRunTimeCounters[pxTaskStatusArray[x ].xTaskNumber ] = pxTaskStatusArray[x ].ulRunTimeCounter ;
81
+ ulTaskRunTime = (ulTaskRunTime * 100 ) / ulCurrentRunTime ; // in percentage
81
82
} else {
82
- uiTaskRunTime = 0 ;
83
+ ulTaskRunTime = 0 ;
83
84
}
84
85
#endif
85
86
printer.printf (" %3u\t %16s"
@@ -91,22 +92,22 @@ void printRunningTasks(Print & printer) {
91
92
" \t %4c"
92
93
#endif
93
94
" \t %s\r\n " ,
94
- pxTaskStatusArray[ x ].xTaskNumber ,
95
- pxTaskStatusArray[ x ].pcTaskName ,
95
+ pxTaskStatusArray[x ].xTaskNumber ,
96
+ pxTaskStatusArray[x ].pcTaskName ,
96
97
#if CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS
97
- uiTaskRunTime ,
98
+ ulTaskRunTime ,
98
99
#endif
99
- pxTaskStatusArray[ x ].uxCurrentPriority ,
100
- pxTaskStatusArray[ x ].usStackHighWaterMark ,
100
+ pxTaskStatusArray[x ].uxCurrentPriority ,
101
+ pxTaskStatusArray[x ].usStackHighWaterMark ,
101
102
#if CONFIG_FREERTOS_VTASKLIST_INCLUDE_COREID
102
- (pxTaskStatusArray[ x ].xCoreID == tskNO_AFFINITY)?' *' :(' 0' +pxTaskStatusArray[ x ].xCoreID ),
103
+ (pxTaskStatusArray[x ].xCoreID == tskNO_AFFINITY)?' *' :(' 0' +pxTaskStatusArray[x ].xCoreID ),
103
104
#endif
104
- taskStates[pxTaskStatusArray[ x ].eCurrentState ]
105
+ taskStates[pxTaskStatusArray[x ].eCurrentState ]
105
106
);
106
107
}
107
108
108
109
// The array is no longer needed, free the memory it consumes.
109
- vPortFree ( pxTaskStatusArray );
110
+ vPortFree (pxTaskStatusArray);
110
111
printer.println ();
111
112
}
112
113
#else
0 commit comments