diff options
| author | JF <jf@codingfield.com> | 2022-04-02 14:34:53 (GMT) |
|---|---|---|
| committer | Gitea <gitea@fake.local> | 2022-04-02 14:34:53 (GMT) |
| commit | 187ea0f06d93c7f7df5779cb321a28ad040234ee (patch) | |
| tree | 3d6d1b2f60573045734153d975e9b0aa1b327394 /src/systemtask/SystemMonitor.cpp | |
| parent | adc7909c9823c5cd9fc9888a84e84f9182b9088f (diff) | |
| parent | b498e1d633522eed975d78b04508834b7a79befe (diff) | |
Merge branch 'develop' of JF/PineTime into master
Diffstat (limited to 'src/systemtask/SystemMonitor.cpp')
| -rw-r--r-- | src/systemtask/SystemMonitor.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/systemtask/SystemMonitor.cpp b/src/systemtask/SystemMonitor.cpp new file mode 100644 index 0000000..90765e3 --- /dev/null +++ b/src/systemtask/SystemMonitor.cpp @@ -0,0 +1,26 @@ +#include "systemtask/SystemTask.h" +#if configUSE_TRACE_FACILITY == 1 +// FreeRtosMonitor +#include <FreeRTOS.h> +#include <task.h> +#include <nrf_log.h> + +void Pinetime::System::SystemMonitor::Process() { + if (xTaskGetTickCount() - lastTick > 10000) { + NRF_LOG_INFO("---------------------------------------\nFree heap : %d", xPortGetFreeHeapSize()); + TaskStatus_t tasksStatus[10]; + auto nb = uxTaskGetSystemState(tasksStatus, 10, nullptr); + for (uint32_t i = 0; i < nb; i++) { + NRF_LOG_INFO("Task [%s] - %d", tasksStatus[i].pcTaskName, tasksStatus[i].usStackHighWaterMark); + if (tasksStatus[i].usStackHighWaterMark < 20) + NRF_LOG_INFO("WARNING!!! Task %s task is nearly full, only %dB available", + tasksStatus[i].pcTaskName, + tasksStatus[i].usStackHighWaterMark * 4); + } + lastTick = xTaskGetTickCount(); + } +} +#else +// DummyMonitor +void Pinetime::System::SystemMonitor::Process() {} +#endif |
