From d872bcd9262c0774d87ea1f360e87957349ac8e6 Mon Sep 17 00:00:00 2001 From: xutao Date: Wed, 21 Oct 2020 14:31:43 +0800 Subject: [PATCH] task_wdt: record task handle when trigger task wdt --- components/esp32/task_wdt.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/components/esp32/task_wdt.c b/components/esp32/task_wdt.c index 0c302082a4..aa366a295d 100644 --- a/components/esp32/task_wdt.c +++ b/components/esp32/task_wdt.c @@ -129,6 +129,12 @@ void __attribute__((weak)) esp_task_wdt_isr_user_handler(void) } +static void _task_wdt_assert(char* pro_addr, char* app_addr) +{ + ets_printf(DRAM_STR("pro: %08x, app: %08x\n"), pro_addr, app_addr); + asm volatile("ill\n"); +} + /* * ISR for when TWDT times out. Checks for which tasks have not reset. Also * triggers panic if configured to do so @@ -171,7 +177,8 @@ static void task_wdt_isr(void *arg) ESP_EARLY_LOGE(TAG, "Aborting."); portEXIT_CRITICAL_ISR(&twdt_spinlock); esp_reset_reason_set_hint(ESP_RST_TASK_WDT); - abort(); + // abort(); + _task_wdt_assert(xTaskGetCurrentTaskHandleForCPU(0), xTaskGetCurrentTaskHandleForCPU(1)); } portEXIT_CRITICAL_ISR(&twdt_spinlock);