Merge branch 'feature/twdt_prints_backtrace' into 'master'

Add Task Watchdog backtrace printing

Closes IDF-1072

See merge request espressif/esp-idf!8136
This commit is contained in:
Angus Gratton
2020-05-04 14:58:53 +08:00
4 changed files with 42 additions and 1 deletions
+9
View File
@@ -17,6 +17,7 @@
#include "esp_attr.h"
#include "esp_err.h"
#include "esp_intr_alloc.h"
#include "esp_debug_helpers.h"
#include "esp32s2/rom/ets_sys.h"
#include "esp32s2/rom/uart.h"
@@ -35,6 +36,7 @@
#define REASON_YIELD BIT(0)
#define REASON_FREQ_SWITCH BIT(1)
#define REASON_PRINT_BACKTRACE BIT(2)
static portMUX_TYPE reason_spinlock = portMUX_INITIALIZER_UNLOCKED;
static volatile uint32_t reason;
@@ -71,6 +73,9 @@ static void IRAM_ATTR esp_crosscore_isr(void *arg) {
* to allow DFS features without the extra latency of the ISR hook.
*/
}
if (my_reason_val & REASON_PRINT_BACKTRACE) {
esp_backtrace_print(100);
}
}
//Initialize the crosscore interrupt on this core.
@@ -101,3 +106,7 @@ void IRAM_ATTR esp_crosscore_int_send_freq_switch(int core_id)
esp_crosscore_int_send(core_id, REASON_FREQ_SWITCH);
}
void IRAM_ATTR esp_crosscore_int_send_print_backtrace(int core_id)
{
esp_crosscore_int_send(core_id, REASON_PRINT_BACKTRACE);
}