Add FreeRTOS per-task mem usage reporting

This commit is contained in:
robert committed 2026-10-29 15:12:02 +02:00
1 parent 76a9853b12
commit 9bcba5db41
8 files changed
+212 -10

No files matched your search

@@ -165,6 +165,7 @@ standard names. */
#define USE_CUSTOM_SYSTICK_HANDLER_IMPLEMENTATION 0
/* USER CODE BEGIN Defines */
#define INCLUDE_xTaskGetIdleTaskHandle 1
/* Section where parameter definitions can be added (for instance, to override default ones in FreeRTOS.h) */
/* USER CODE END Defines */
@@ -25,6 +25,7 @@
/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
#include "mongoose.h"
#include "timers.h"
/* USER CODE END Includes */
@@ -95,6 +96,16 @@ void StartDefaultTask(void *argument);
/* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 */
size_t app_task_stack_total(TaskHandle_t task) {
if (task == (TaskHandle_t) defaultTaskHandle)
return (size_t) defaultTask_attributes.stack_size;
if (task == xTaskGetIdleTaskHandle())
return (size_t) configMINIMAL_STACK_SIZE * sizeof(StackType_t);
if (task == xTimerGetTimerDaemonTaskHandle())
return (size_t) configTIMER_TASK_STACK_DEPTH * sizeof(StackType_t);
return 0; // Add other application tasks here
}
static void log_fn(char ch, void *param) {
HAL_UART_Transmit(param, (unsigned char *) &ch, 1, HAL_MAX_DELAY);
}
@@ -13,6 +13,10 @@
#define MG_HEALTH_HEAP_TOTAL ((size_t) configTOTAL_HEAP_SIZE)
#define MG_HEALTH_HEAP_USED (MG_HEALTH_HEAP_TOTAL - xPortGetFreeHeapSize())
// Per-task totals in bytes
size_t app_task_stack_total(TaskHandle_t task);
#define MG_HEALTH_TASK_STACK_TOTAL(task) app_task_stack_total(task)
// Ethernet driver tunables:
// #define MG_DRIVER_MDC_CR 4 // RMII MDC clock divider, from 0 to 5
// #define MG_TCPIP_PHY_ADDR 0 // PHY address