Skip to content

CrashOverride2/MycilaTaskMonitor

 
 

Repository files navigation

MycilaTaskMonitor

License: MIT Continuous Integration PlatformIO Registry

Arduino / ESP32 library to monitor task priority and stack high watermark

This helps monitor stack sizes and correctly set the stack size of each task.

  • toJson() to get stack info
  • log() to log stack info
  • Configurable warning thresholds with MYCILA_TASK_MONITOR_STACK_FREE_MIN and MYCILA_TASK_MONITOR_STACK_FREE_MAX: depending on these level, the loop will log as warnings or info.

Usage

void setup() {
  Mycila::TaskMonitor.begin(5);
  Mycila::TaskMonitor.addTask("loopTask");
  Mycila::TaskMonitor.addTask("async_tcp");
  Mycila::TaskMonitor.addTask("mqttclient");
  Mycila::TaskMonitor.addTask("jsyTask");
  Mycila::TaskMonitor.addTask("ioTask");
}

void loop() {
  Mycila::TaskMonitor.log();
  delay(1000);
}

outputs:

D       588202 loopTask   (1) MONITOR    loopTask   (p=1) 260 bytes
D       588207 loopTask   (1) MONITOR    async_tcp  (p=3) 496 bytes
D       588208 loopTask   (1) MONITOR    mqttclient (p=1) 544 bytes
D       588221 loopTask   (1) MONITOR    jsyTask    (p=1) 296 bytes
D       588222 loopTask   (1) MONITOR    ioTask     (p=1) 464 bytes

About

Arduino / ESP32 library to monitor task priority and stack high watermark

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 100.0%