mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
feat(panic): send pseudo exccause to openocd
This commit is contained in:
parent
bc87e14695
commit
b07702b6ad
@ -60,6 +60,14 @@
|
|||||||
#include "hal/usb_serial_jtag_ll.h"
|
#include "hal/usb_serial_jtag_ll.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef __XTENSA__
|
||||||
|
#include "xtensa/semihosting.h"
|
||||||
|
#elif __riscv
|
||||||
|
#include "riscv/semihosting.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define ESP_SEMIHOSTING_SYS_PANIC_REASON 0x116
|
||||||
|
|
||||||
#define MWDT_DEFAULT_TICKS_PER_US 500
|
#define MWDT_DEFAULT_TICKS_PER_US 500
|
||||||
|
|
||||||
bool g_panic_abort = false;
|
bool g_panic_abort = false;
|
||||||
@ -287,6 +295,17 @@ void esp_panic_handler(panic_info_t *info)
|
|||||||
// then only print up to details. Users should be able to probe for the other information
|
// then only print up to details. Users should be able to probe for the other information
|
||||||
// in debug mode.
|
// in debug mode.
|
||||||
if (esp_cpu_dbgr_is_attached()) {
|
if (esp_cpu_dbgr_is_attached()) {
|
||||||
|
char *panic_reason_str = NULL;
|
||||||
|
if (info->pseudo_excause) {
|
||||||
|
panic_reason_str = (char *)info->reason;
|
||||||
|
} else if (g_panic_abort && strlen(g_panic_abort_details)) {
|
||||||
|
panic_reason_str = g_panic_abort_details;
|
||||||
|
}
|
||||||
|
if (panic_reason_str) {
|
||||||
|
/* OpenOCD will print the halt cause when target is stopped at the below breakpoint (info->addr) */
|
||||||
|
long args[] = {(long)panic_reason_str, strlen(panic_reason_str)};
|
||||||
|
semihosting_call_noerrno(ESP_SEMIHOSTING_SYS_PANIC_REASON, args);
|
||||||
|
}
|
||||||
panic_print_str("Setting breakpoint at 0x");
|
panic_print_str("Setting breakpoint at 0x");
|
||||||
panic_print_hex((uint32_t)info->addr);
|
panic_print_hex((uint32_t)info->addr);
|
||||||
panic_print_str(" and returning...\r\n");
|
panic_print_str(" and returning...\r\n");
|
||||||
|
Loading…
Reference in New Issue
Block a user