mirror of
https://github.com/ByteWelder/Tactility.git
synced 2026-02-18 10:53:17 +00:00
45 lines
1.4 KiB
C++
45 lines
1.4 KiB
C++
#include "Check.h"
|
|
|
|
#include "CoreDefines.h"
|
|
#include "Log.h"
|
|
|
|
#ifdef ESP_TARGET
|
|
#include "freertos/FreeRTOS.h"
|
|
#include "freertos/task.h"
|
|
#else
|
|
#include "FreeRTOS.h"
|
|
#include "task.h"
|
|
#endif
|
|
|
|
#define TAG "kernel"
|
|
|
|
static void tt_print_memory_info() {
|
|
#ifdef ESP_PLATFORM
|
|
TT_LOG_E(TAG, "default caps:");
|
|
TT_LOG_E(TAG, " total: %u", heap_caps_get_total_size(MALLOC_CAP_DEFAULT));
|
|
TT_LOG_E(TAG, " free: %u", heap_caps_get_free_size(MALLOC_CAP_DEFAULT));
|
|
TT_LOG_E(TAG, " min free: %u", heap_caps_get_minimum_free_size(MALLOC_CAP_DEFAULT));
|
|
TT_LOG_E(TAG, "internal caps:");
|
|
TT_LOG_E(TAG, " total: %u", heap_caps_get_total_size(MALLOC_CAP_INTERNAL));
|
|
TT_LOG_E(TAG, " free: %u", heap_caps_get_free_size(MALLOC_CAP_INTERNAL));
|
|
TT_LOG_E(TAG, " min free: %u", heap_caps_get_minimum_free_size(MALLOC_CAP_INTERNAL));
|
|
#endif
|
|
}
|
|
|
|
static void tt_print_task_info() {
|
|
const char* name = pcTaskGetName(nullptr);
|
|
const char* safe_name = name ? name : "main";
|
|
TT_LOG_E(TAG, "Task: %s", safe_name);
|
|
TT_LOG_E(TAG, "Stack watermark: %u", uxTaskGetStackHighWaterMark(NULL) * 4);
|
|
}
|
|
|
|
TT_NORETURN void tt_crash_implementation() {
|
|
tt_print_task_info();
|
|
tt_print_memory_info();
|
|
// TODO: Add breakpoint when debugger is attached.
|
|
#ifdef ESP_TARGET
|
|
esp_system_abort("System halted. Connect debugger for more info.");
|
|
#endif
|
|
__builtin_unreachable();
|
|
}
|