ESP32 high interrupts

cnlohr
Posts: 65
Joined: Sat Dec 03, 2016 5:39 am

ESP32 high interrupts

Postby cnlohr » Thu Mar 07, 2019 11:58 pm

I have no problem attaching and using interrupt levels 1-3 in the IDF, however, all interrupts above that cause the following errors:

Code: Select all

Guru Meditation Error: Core  0 panic'ed (Interrupt wdt timeout on CPU0)
Core 0 register dump:
PC      : 0x40127dde  PS      : 0x00060734  A0      : 0x800d1162  A1      : 0x3ffbaf30  
0x40127dde: esp_pm_impl_waiti at /home/cnlohr/esp/esp-idf/components/esp32/pm_esp32.c:487

A2      : 0x00000000  A3      : 0x400828d4  A4      : 0x00060720  A5      : 0x00000001  
0x400828d4: _free_r at /home/cnlohr/esp/esp-idf/components/newlib/syscalls.c:41

A6      : 0x0000cdcd  A7      : 0x00000000  A8      : 0x800d200a  A9      : 0x3ffbaf00  
A10     : 0x00000000  A11     : 0x3ffb0060  A12     : 0x3ffb0494  A13     : 0x00000000  
A14     : 0x00060720  A15     : 0x00000000  SAR     : 0x00000000  EXCCAUSE: 0x00000005  
EXCVADDR: 0x00000000  LBEG    : 0x00000000  LEND    : 0x00000000  LCOUNT  : 0x00000000  

ELF file SHA256: 5ed0d773706037740e2ee59c7e957291704f9570b8642f73dcca5d30182a2ca6

Backtrace: 0x40127dde:0x3ffbaf30 0x400d115f:0x3ffbaf50 0x40090895:0x3ffbaf70
0x40127dde: esp_pm_impl_waiti at /home/cnlohr/esp/esp-idf/components/esp32/pm_esp32.c:487

0x400d115f: esp_vApplicationIdleHook at /home/cnlohr/esp/esp-idf/components/esp32/freertos_hooks.c:86

0x40090895: prvIdleTask at /home/cnlohr/esp/esp-idf/components/freertos/tasks.c:3537


Core 1 register dump:
PC      : 0x40127dde  PS      : 0x00060634  A0      : 0x800d1162  A1      : 0x3ffbb6a0  
0x40127dde: esp_pm_impl_waiti at /home/cnlohr/esp/esp-idf/components/esp32/pm_esp32.c:487

A2      : 0x00000000  A3      : 0x00060423  A4      : 0x00060420  A5      : 0x00000001  
A6      : 0x0000abab  A7      : 0x00000000  A8      : 0x800d200a  A9      : 0x3ffbb670  
A10     : 0x00000000  A11     : 0x3ffb0060  A12     : 0x3ffb0498  A13     : 0x00000000  
A14     : 0x00060020  A15     : 0x00000000  SAR     : 0x00000000  EXCCAUSE: 0x00000005  
EXCVADDR: 0x00000000  LBEG    : 0x00000000  LEND    : 0x00000000  LCOUNT  : 0x00000000  

ELF file SHA256: 5ed0d773706037740e2ee59c7e957291704f9570b8642f73dcca5d30182a2ca6

Backtrace: 0x40127dde:0x3ffbb6a0 0x400d115f:0x3ffbb6c0 0x40090895:0x3ffbb6e0
0x40127dde: esp_pm_impl_waiti at /home/cnlohr/esp/esp-idf/components/esp32/pm_esp32.c:487

0x400d115f: esp_vApplicationIdleHook at /home/cnlohr/esp/esp-idf/components/esp32/freertos_hooks.c:86

0x40090895: prvIdleTask at /home/cnlohr/esp/esp-idf/components/freertos/tasks.c:3537
I've tried immediately returning from the interrupt, to no avail.

Is this a known issue? I just really need this interrupt to fire with minimal latency.

Here's the snippet of how I'm setting it up:

It works if I #define ETS_I2S1_INUM 23, but does not if I #define ETS_I2S1_INUM 24

Code: Select all

    xt_set_interrupt_handler(ETS_I2S1_INUM, &i2s_isr, NULL);
    intr_matrix_set(I2S_ON_CORE, ETS_I2S1_INTR_SOURCE, ETS_I2S1_INUM);

    SET_PERI_REG_BITS(I2S_INT_ENA_REG(1), I2S_OUT_DONE_INT_ENA_V, 1, I2S_OUT_DONE_INT_ENA_S);
    ESP_INTR_ENABLE(ETS_I2S1_INUM);
    SET_PERI_REG_BITS(I2S_CONF_REG(1), I2S_TX_START_V, 1,I2S_TX_START_S);

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

Re: ESP32 high interrupts

Postby ESP_Sprite » Fri Mar 08, 2019 8:45 am

What does your interrupt handler code look like?

Who is online

Users browsing this forum: No registered users and 125 guests