【Help】How to trace when Backtrace corrupted

jakechen
Posts: 6
Joined: Fri Aug 16, 2024 2:10 am

【Help】How to trace when Backtrace corrupted

Postby jakechen » Fri Aug 23, 2024 2:56 am

Guru Meditation Error: Core 1 panic'Backtrace: 0x7ad00baa:0x3fc989c0 |<-CORRUPTED
I met a trace problem,the trace log is below,but it is not enough,as i cann't found any code connected with 0x7ad00baa.
Maybe my method is not good enough,any one can help me?

Guru Meditation Error: Core 1 panic'ed (Cache disabled but cached memory region accessed).

Core 1 register dump:
PC : 0xbad00bad PS : 0x00060034 A0 : 0x803758ff A1 : 0x3fc989c0
A2 : 0x3fcee3f0 A3 : 0x00000001 A4 : 0x803815d8 A5 : 0x3fcf1690
A6 : 0x00000000 A7 : 0x3fcee384 A8 : 0x8037bed5 A9 : 0x00000007
A10 : 0x3fcee460 A11 : 0x00000001 A12 : 0x80378abc A13 : 0x3fcf1670
A14 : 0x600c0030 A15 : 0x00000001 SAR : 0x00000000 EXCCAUSE: 0x00000007
EXCVADDR: 0x00000000 LBEG : 0x00000000 LEND : 0x00000000 LCOUNT : 0x00000000

Backtrace: 0x7ad00baa:0x3fc989c0 |<-CORRUPTED

ELF file SHA256: b34ca88c85e2ff0c

ESP_Sprite
Posts: 9568
Joined: Thu Nov 26, 2015 4:08 am

Re: 【Help】How to trace when Backtrace corrupted

Postby ESP_Sprite » Fri Aug 23, 2024 5:02 am

A0 is the link register but has the upper few bits rewritten with the window shift. A0 in your case is 0x803758ff, which likely was the address 0x403758ff. Is there anything at that address?

If not, this particular error is something you usually get in an interrupt marked as entirely in IRAM (ESP_INTR_FLAG_IRAM) which calls or otherwise uses anything in flash. You can see if there's anything like that in your code.

jakechen
Posts: 6
Joined: Fri Aug 16, 2024 2:10 am

Re: 【Help】How to trace when Backtrace corrupted

Postby jakechen » Fri Aug 23, 2024 8:52 am

Thank you for you help.
I found the pisition,but more confused

bool IRAM_ATTR timer_isr_callback()
{
return true; <---- A0 happened here
}
static void IRAM_ATTR timer_isr(void* arg) {
timer_ll_clear_intr_status(&TIMERG0, TIMER_0);
if (timer_isr_callback()) {
timer_ll_set_alarm_enable(&TIMERG0, TIMER_0, true);
}
}
void timer_isr_register(){
esp_intr_alloc_intrstatus(timer_group_periph_signals.groups[TIMER_GROUP_0].t0_irq_id,
ESP_INTR_FLAG_IRAM,
timer_ll_get_intr_status_reg(&TIMERG0),
1 << TIMER_0,
timer_isr,
NULL,
NULL);
}

ESP_Sprite
Posts: 9568
Joined: Thu Nov 26, 2015 4:08 am

Re: 【Help】How to trace when Backtrace corrupted

Postby ESP_Sprite » Sun Aug 25, 2024 5:09 am

I'm not sure either... perhaps in Menuconfig under Component config → ESP-Driver:GPTimer Configurations, check if the options considering IRAM are set correctly?

Who is online

Users browsing this forum: No registered users and 120 guests