Skip to content

Latest commit

 

History

History
26 lines (22 loc) · 2.1 KB

File metadata and controls

26 lines (22 loc) · 2.1 KB

Changelog

All notable changes to this project will be documented in this file.

Added

  • More ESPMemoryMonitor examples: manual sampling without the background task and a panic-hook sketch that captures a final snapshot.
  • MemoryMonitorConfig::usePSRAMBuffers to prefer PSRAM for monitor-owned long-lived containers via ESPBufferManager with automatic fallback to normal heap.
  • Routed additional hot-path transient monitor scratch containers (threshold/task events, task-status capture, scope/tag threshold staging, and window analytics scratch vectors) through the same ESPBufferManager policy.
  • Added internal/public model separation for history/scope/tag/task/leak state: monitor internals now use PSRAM-policy-aware storage models and convert to existing public API structs at return/callback boundaries.
  • Switched sampler task lifecycle to native FreeRTOS task handling (xTaskCreatePinnedToCore/vTaskDelete).
  • Added lifecycle teardown tests in test/test_memory_monitor_lifecycle covering pre-init deinit(), idempotent teardown, re-init, and destructor behavior.

Fixed

  • Mark the failed-allocation hook instance pointer as static so Arduino builds compile the callback correctly.
  • deinit() now releases monitor-owned container capacity (not just entries), fully clears runtime state, and resets config/runtime flags for deterministic re-init.
  • CI now pins PIOArduino Core to v6.1.19 and installs the ESP32 platform via pio pkg install, restoring PlatformIO compatibility with the current platform-espressif32 package.

1.0.0 - 2025-12-02

Added

  • Initial ESPMemoryMonitor library with snapshot API, background sampler task, and ring-buffer history for DRAM + PSRAM.
  • Per-region warn/critical thresholds with hysteresis and callbacks.
  • Optional fragmentation scores, min-ever-free tracking, per-task stack high-water marks, and failed-allocation event hook.
  • Basic Arduino example sketch demonstrating sampling and alerts.