Task WDT: Interuptee task stack is now used for backtracing, regardless of the CPU core

For RISC-V and Xtensa targets, in case a panic needs to happen when
Task WDT is triggered (ESP_TASK_WDT_PANIC), the interruptee's stack
is now used for printing the backtrace.
Abort after Task Watchdog is triggered can happen on APP CPU (second core).
This commit is contained in:
Omar Chebib
2022-07-13 17:27:37 +08:00
parent d7ab8fd4ba
commit e25cda2c40
10 changed files with 278 additions and 48 deletions

View File

@@ -54,12 +54,24 @@ void esp_crosscore_int_send_gdb_call(int core_id);
/**
* Send an interrupt to a CPU indicating it should print its current backtrace
*
* This is use internally by the Task Watchdog to dump the backtrace of the
* This is used internally by the Task Watchdog to dump the backtrace of the
* opposite core and should not be called from application code.
*
* @param core_id Core that should print its backtrace
*/
void esp_crosscore_int_send_print_backtrace(int core_id);
/**
* Send an interrupt to a CPU indicating it call `task_wdt_timeout_abort_xtensa`.
* This will make the CPU abort, using the interrupted task frame.
*
* This is used internally by the Task Watchdog when it should abort after a task,
* running on the other core than the one running the TWDT ISR, failed to reset
* its timer.
*
* @param core_id Core that should abort
*/
void esp_crosscore_int_send_twdt_abort(int core_id);
#endif
#ifdef __cplusplus