Enable malloc error and stack overflow error detection in FreeRTOS. Count them and display them in the SystemInfo app.
This commit is contained in:
committed by
JF
parent
1911e2d928
commit
611e0ff768
@@ -177,6 +177,8 @@ std::unique_ptr<Screen> SystemInfo::CreateScreen2() {
|
||||
return std::make_unique<Screens::Label>(1, 5, label);
|
||||
}
|
||||
|
||||
extern int mallocFailedCount;
|
||||
extern int stackOverflowCount;
|
||||
std::unique_ptr<Screen> SystemInfo::CreateScreen3() {
|
||||
lv_mem_monitor_t mon;
|
||||
lv_mem_monitor(&mon);
|
||||
@@ -188,22 +190,23 @@ std::unique_ptr<Screen> SystemInfo::CreateScreen3() {
|
||||
"#808080 BLE MAC#\n"
|
||||
" %02x:%02x:%02x:%02x:%02x:%02x"
|
||||
"\n"
|
||||
"#808080 LVGL Memory#\n"
|
||||
" #808080 used# %d (%d%%)\n"
|
||||
" #808080 max used# %lu\n"
|
||||
" #808080 frag# %d%%\n"
|
||||
" #808080 free# %d",
|
||||
"\n"
|
||||
"#808080 Memory heap#\n"
|
||||
" #808080 Free# %d\n"
|
||||
" #808080 Min free# %d\n"
|
||||
" #808080 Alloc err# %d\n"
|
||||
" #808080 Ovrfl err# %d\n",
|
||||
bleAddr[5],
|
||||
bleAddr[4],
|
||||
bleAddr[3],
|
||||
bleAddr[2],
|
||||
bleAddr[1],
|
||||
bleAddr[0],
|
||||
static_cast<int>(mon.total_size - mon.free_size),
|
||||
mon.used_pct,
|
||||
mon.max_used,
|
||||
mon.frag_pct,
|
||||
static_cast<int>(mon.free_biggest_size));
|
||||
xPortGetFreeHeapSize(),
|
||||
xPortGetMinimumEverFreeHeapSize(),
|
||||
mallocFailedCount,
|
||||
stackOverflowCount
|
||||
);
|
||||
lv_obj_align(label, lv_scr_act(), LV_ALIGN_CENTER, 0, 0);
|
||||
return std::make_unique<Screens::Label>(2, 5, label);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user