Skip to content

[Bug]: [TloraPager] RotaryEncoder crash #8899

@polarikus

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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions