41 TRACE(
"Task Stack Sizes:\n");
43 TaskStatus_t *pxTaskStatusArray;
44 UBaseType_t uxTaskCount = uxTaskGetNumberOfTasks();
45 pxTaskStatusArray = (TaskStatus_t *)pvPortMalloc(uxTaskCount *
sizeof(TaskStatus_t));
47 if (pxTaskStatusArray != NULL)
49 uxTaskGetSystemState(pxTaskStatusArray, uxTaskCount, NULL);
50 for (UBaseType_t i = 0; i < uxTaskCount; i++)
52 TRACE(
"Task %s: Stack high watermark: %u bytes\n",
53 pxTaskStatusArray[i].pcTaskName,
54 pxTaskStatusArray[i].usStackHighWaterMark);
56 vPortFree(pxTaskStatusArray);
60 TRACE(
"Failed to allocate memory for task status array.\n");
67 printf(
"\n===== SYSTEM STATS =====\n");
68 printf(
"Free heap size: %zu bytes\n", xPortGetFreeHeapSize());
69 printf(
"Minimum ever free heap: %zu bytes\n", xPortGetMinimumEverFreeHeapSize());
70 printf(
"Stack watermark: AcceptConnect: %zu, HandleClient: %zu, tcpip_thread: %zu\n",
71 uxTaskGetStackHighWaterMark(NULL),
72 uxTaskGetStackHighWaterMark(NULL),
73 uxTaskGetStackHighWaterMark(NULL));
74 printf(
"========================\n");
104 TaskStatus_t *pxTaskStatusArray;
105 UBaseType_t uxArraySize = uxTaskGetNumberOfTasks();
106 unsigned long ulTotalRunTime;
108 TRACE(
"Number of tasks %d\n", uxArraySize);
109 pxTaskStatusArray = (TaskStatus_t *)pvPortMalloc(uxArraySize *
sizeof(TaskStatus_t));
111 if (pxTaskStatusArray != NULL)
113 uxArraySize = uxTaskGetSystemState(pxTaskStatusArray, uxArraySize, &ulTotalRunTime);
115 for (UBaseType_t x = 0; x < uxArraySize; x++)
117 printf(
"Task: %d \t cPri:%d \t bPri:%d \t hw:%zu \t%s \t core: %s\n",
118 pxTaskStatusArray[x].xTaskNumber,
119 pxTaskStatusArray[x].uxCurrentPriority,
120 pxTaskStatusArray[x].uxBasePriority,
121 pxTaskStatusArray[x].usStackHighWaterMark,
122 pxTaskStatusArray[x].pcTaskName);
123 printf(
"%d\n", get_core_num());
125 vPortFree(pxTaskStatusArray);
129 panic(
"Failed to allocate space for stats\n");
132 HeapStats_t heapStats;
133 vPortGetHeapStats(&heapStats);
134 printf(
"HEAP avl: %zu, blocks %zu, alloc: %zu, free: %zu\n",
135 heapStats.xAvailableHeapSpaceInBytes,
136 heapStats.xNumberOfFreeBlocks,
137 heapStats.xNumberOfSuccessfulAllocations,
138 heapStats.xNumberOfSuccessfulFrees);