Skip to content

[Bug]: [TloraPager] RotaryEncoder crash #8899

Description

@polarikus

Category

Other

Hardware

Other

Is this bug report about any UI component firmware like InkHUD or Meshtatic UI (MUI)?

  • Meshtastic UI aka MUI colorTFT
  • InkHUD ePaper
  • OLED slide UI on any display

Firmware Version

2.7.15

Description

Description

The T-LoRa Pager crashes with a LoadProhibited exception when using the rotary encoder. The crash occurs in GPIO interrupt handlers that attempt to access PSRAM through non-ISR-safe functions.

Steps

  1. Wait for the transition to sleep mode:
    INFO | ??:??:?? 113 [PowerFSM] setup LORA_DIO1 (GPIO14) with wakeup by gpio interrupt
  2. Press the encoder not just once, but press and hold it for a long time

Relevant log output

Core  1 register dump:
PC      : 0x40385273  PS      : 0x00060934  A0      : 0x80382687  A1      : 0x3fc9f010
A2      : 0x3fcf7bcc  A3      : 0xb33fffff  A4      : 0x0000cdcd  A5      : 0x00060d23
A6      : 0x00060d23  A7      : 0x0000abab  A8      : 0x0000cdcd  A9      : 0xffffffff
A10     : 0x00060b23  A11     : 0x00000003  A12     : 0x4037593d  A13     : 0x3fc9f130
A14     : 0x02cf7bcc  A15     : 0x00ffffff  SAR     : 0x00000019  EXCCAUSE: 0x00000006
EXCVADDR: 0x00000000  LBEG    : 0x40056f5c  LEND    : 0x40056f72  LCOUNT  : 0xffffffff
Core  1 was running in ISR context:
EPC1    : 0x421c02a3  EPC2    : 0x00000000  EPC3    : 0x00000000  EPC4    : 0x40385273

stack:
0x40385270: esp_ptr_external_ram at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/soc/include/soc/soc_memory_types.h:115
  \-> inlined by: spinlock_acquire at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp_hw_support/include/soc/spinlock.h:99
  \-> inlined by: xPortEnterCriticalTimeout at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/freertos/port/xtensa/port.c:301
0x40382684: vPortEnterCritical at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/freertos/port/xtensa/include/freertos/portmacro.h:578
  \-> inlined by: xQueueGenericSendFromISR at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/freertos/queue.c:1082
0x420bc375: InputBroker::requestPollSoon(InputPollable*) at /Users/igordanilov/Dev/C++/meshtastic-firmware/src/input/InputBroker.cpp:26
0x420bc389: RotaryEncoderImpl::init()::{lambda()#1}::_FUN() at /Users/igordanilov/Dev/C++/meshtastic-firmware/src/input/RotaryEncoderImpl.cpp:33
  \-> inlined by: _FUN at /Users/igordanilov/Dev/C++/meshtastic-firmware/src/input/RotaryEncoderImpl.cpp:33
0x42002681: __onPinInterrupt at /Users/igordanilov/.platformio/packages/framework-arduinoespressif32/cores/esp32/esp32-hal-gpio.c:159
0x403758d9: gpio_isr_loop at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/driver/gpio.c:417
0x403758fe: gpio_intr_service at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/driver/gpio.c:434
0x40379fd9: _xt_lowint1 at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/freertos/port/xtensa/xtensa_vectors.S:1118
0x4037593a: gpio_ll_clear_intr_status_high at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/hal/esp32s3/include/hal/gpio_ll.h:150
  \-> inlined by: gpio_intr_service at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/driver/gpio.c:444
0x420fcefd: esp_vApplicationIdleHook at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp_system/freertos_hooks.c:63
0x40382fcc: prvIdleTask at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/freertos/tasks.c:4099


Core  0 register dump:
PC      : 0x40385371  PS      : 0x00060134  A0      : 0x803828d5  A1      : 0x3fcbda60
A2      : 0x00000001  A3      : 0x3fcb58b4  A4      : 0x3fcb58b4  A5      : 0x00060123
A6      : 0x00060120  A7      : 0x00000001  A8      : 0x00000001  A9      : 0x00000001
A10     : 0x00060123  A11     : 0x00000000  A12     : 0x00060120  A13     : 0x00000000
A14     : 0x02cf7bcc  A15     : 0x00ffffff  SAR     : 0x00000008  EXCCAUSE: 0x00000006
EXCVADDR: 0x00000000  LBEG    : 0x40056f5c  LEND    : 0x40056f72  LCOUNT  : 0xffffffff

stack:
0x4038536e: xPortEnterCriticalTimeout at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/freertos/port/xtensa/port.c:312
0x403828d2: vPortEnterCritical at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/freertos/port/xtensa/include/freertos/portmacro.h:578
  \-> inlined by: xQueueReceive at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/freertos/queue.c:1400
0x420bc1e9: InputBroker::pollSoonWorker(void*) at /Users/igordanilov/Dev/C++/meshtastic-firmware/src/input/InputBroker.cpp:73

Guru Meditation Error: Core  1 panic'ed (Interrupt wdt timeout on CPU1).

Core  1 register dump:
PC      : 0x4038a50f  PS      : 0x00020034  A0      : 0x8213ddbe  A1      : 0x3fc9ee20
A2      : 0x00020023  A3      : 0xa5a5a5a5  A4      : 0x8213ddbe  A5      : 0x00060025
A6      : 0xfffbfff0  A7      : 0x00000046  A8      : 0x3fca280c  A9      : 0x00000001
A10     : 0x60000000  A11     : 0x00000001  A12     : 0x0000000a  A13     : 0x3fc9ee0c
A14     : 0x00000001  A15     : 0x3fcbdae0  SAR     : 0x0000000a  EXCCAUSE: 0x00000006
EXCVADDR: 0x00000000  LBEG    : 0x400570e8  LEND    : 0x400570f3  LCOUNT  : 0x00000000
Core  1 was running in ISR context:
EPC1    : 0x421c02a3  EPC2    : 0x00000000  EPC3    : 0x00000000  EPC4    : 0x4038a50f

stack:
0x4038a50c: xthal_window_spill at ??:?
0x4213ddbb: esp_core_dump_replace_sp at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/espcoredump/include_core_dump/port/xtensa/esp_core_dump_port_impl.h:67
  \-> inlined by: esp_core_dump_setup_stack at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/espcoredump/src/core_dump_common.c:86
  \-> inlined by: esp_core_dump_write at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/espcoredump/src/core_dump_common.c:160
0x4213e3c1: esp_core_dump_to_flash at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/espcoredump/src/core_dump_flash.c:342
0x420fdd92: esp_panic_handler at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp_system/panic.c:352
0x420fe092: panic_handler at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp_system/port/panic_handler.c:188
0x40377fa9: panicHandler at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp_system/port/panic_handler.c:213
0x40377960: xt_highint4 at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp_system/port/soc/esp32s3/highint_hdl.S:119

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    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