Skip to content

i2s_out intr stats timer stop assert failed #127

@SpComb

Description

@SpComb

Happens occasionally with a very small number of LEDS (count=10), indicates that either I2S_TX_REMPTY_INT_ST somehow happens twice, or happens before i2s_out_i2s_start(). Probably the later, because I2S_OUT_EOF_INT_ST unconditionally sets the I2S_TX_REMPTY_INT_ENA on the end descr, and i2s_out_i2s_start() is only called by the leds task after i2s_out_dma_start(). Somewhat odd, because i2s_ll_tx_start() is only called after i2s_out->stats_out_timer_start is set, and I wouldn't expect the transmit FIFO is empty condition to happen after DMA completes, but before the i2s device is started...?

assert failed: stats_timer_update stats_timer.h:35 (start)


Backtrace: 0x40081e16:0x3ffb0fb0 0x4008a635:0x3ffb0fd0 0x400931ad:0x3ffb0ff0 0x400897d1:0x3ffb1110 0x4008313d:0x3ffb1140 0x40179343:0x3ffbd780 0x400d52fa:0x3ffbd7a0 0x4008bd2d:0x3ffbd7c0 0x4008ee71:0x3ffbd7e0
0x40081e16: panic_abort at /opt/esp-idf/components/esp_system/panic.c:408

0x4008a635: esp_system_abort at /opt/esp-idf/components/esp_system/esp_system.c:137

0x400931ad: __assert_func at /opt/esp-idf/components/newlib/assert.c:85

0x400897d1: stats_timer_update at /build/components/stats/include/stats_timer.h:35
 (inlined by) stats_timer_stop at /build/components/stats/include/stats_timer.h:51
 (inlined by) i2s_out_intr_i2s_done at /build/components/i2s_out/esp32/intr_iram.c:55
 (inlined by) i2s_intr_tx_rempty_handler at /build/components/i2s_out/esp32/intr_iram.c:118
 (inlined by) i2s_intr_handler at /build/components/i2s_out/esp32/intr_iram.c:141

0x4008313d: _xt_lowint1 at /opt/esp-idf/components/freertos/port/xtensa/xtensa_vectors.S:1118

0x40179343: cpu_ll_waiti at /opt/esp-idf/components/hal/esp32/include/hal/cpu_ll.h:183
 (inlined by) esp_pm_impl_waiti at /opt/esp-idf/components/esp_pm/pm_impl.c:853

0x400d52fa: esp_vApplicationIdleHook at /opt/esp-idf/components/esp_system/freertos_hooks.c:63

0x4008bd2d: prvIdleTask at /opt/esp-idf/components/freertos/tasks.c:4099 (discriminator 1)

0x4008ee71: vPortTaskWrapper at /opt/esp-idf/components/freertos/port/xtensa/port.c:142

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions