docs: ESP32 RTC.memory and poweron_reset
Documentation URL
https://docs.micropython.org/en/latest/library/machine.RTC.html
Description
The docs say it will survive "restarts", but it does not survive a poweron_reset. IE, pressing the EN button on the dev board.
Code of Conduct
Yes, I agree
esp32/machine_rtc: Preserve RTC user memory over most reset causes.
ESP32: New compile-time #define allowing to preserve the RTC slow memory during most resets.
Usage:
#define MICROPY_HW_RTC_USER_MEM_NOINIT
e.g. in port/esp32/board/XXX/mpconfigboard.h
When above is defined, the user memory area - accessible by machine.RTC.memory() will survive most reboot causes. A power-on reset (also caused by the EN pin on some boards) will clean the memory. When this happens, the magic number not found in the user memory will cause initialization.
After other resets (triggered by watchdogs, machine.reset(), ...), the user is responsible to check and validate the contents of the user area.