Deel Sleep を試そうと思って、ESP8266 SDK API Guide を読んでいたら、system_rtc_mem_write という関数を見つけた。
system_rtc_mem_read もある。
Deep Sleep からの復帰では、初期化されて、変数も値をキープ出来ないようなのだが、system_rtc_mem_write の説明にこうある。
During deep sleep, only RTC still working, so maybe we need to save some user data in RTC memory. Only user data area can be used by user.
Deep Sleep中もRTCだけが動いてるよ。なので、データをRTCのメモリに保存したいかもね。ユーザーのデータ領域はユーザーだけが使えるよ。
要するに、Deep Sleep中も変更されないメモリにデータを保存しておくことが出来るということらしい。
ならば、Deep Sleepに入る前にデータを保存し、起きたら読みに行けば、それまでの作業を継続することが可能になるかもしれない。
しかも、それが512bytesも用意されている。