I have an application where I want to trigger the ESP32S3 with a Button. The button should be properly debounced.
Thus, my idea is to put the ESP32S3 into deep sleep, wake it with interrupt from deep sleep and perform some software based debouncing from within the deep sleep wake stub function.
Is this a sensible approach?
Unfortunately, while trying to implement this, I noticed the device is crashing as soon as I try to run rtc_gpio_init().
I guess this is because this function isn't in the ROM. Is there some kind of ROM function or similar to access the GPIO from within the stub?
Or is the only way to solve this to directly access the GPIO registers?
Code: Select all
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0x5 (DSLEEP),boot:0x28 (SPI_FAST_FLASH_BOOT)
pro cpu reset by JTAG
Guru Meditation Error: Core 0 panic'ed (IllegalInstruction)
Core 0 register dump:
PC : 0x42009c62 PS : 0x00060830 A0 : 0xa00fe045 A1 : 0x3fceb690
--- 0x42009c62: rtc_gpio_init at /home/user/esp/esp-idf/components/esp_driver_gpio/src/rtc_io.c:47
A2 : 0x3ff1a8cb A3 : 0x3ff1aa71 A4 : 0x3ff1be50 A5 : 0x00000000
A6 : 0x3ff1bc44 A7 : 0x0070efc0 A8 : 0xa00fe0d1 A9 : 0x3fceb670
A10 : 0x50000000 A11 : 0x50000000 A12 : 0x80044186 A13 : 0x3fceb5e0
A14 : 0x00000000 A15 : 0x400559a4 SAR : 0x0000001b EXCCAUSE: 0x00000000
--- 0x400559a4: xtos_p_none in ROM