Espressif ESP8266 APIにあるrtc_mem

Espressif ESP8266 APIリファレンス内のSystem APIsセクションに
system_rtc_mem_read と system_rtc_mem_write という関数があります。
この2つの関数はESP8266内のrtcメモリを読み、書きするもののようです。
rtcメモリは4Bytes単位で、システム用に64ブロック256Bytes、ユーザー用に128ブロック512Bytesが用意されています。
このメモリは電源を切らない限り初期化されないメモリであり、リセットしても消えません。
システムはリセットの要因を保持するためにもこのメモリを使用しているようです。

使い方にもよるとは思いますが、ESP8266は通信をさせるとそこそこ制御を失うことがあります。制御を失った状態からの復帰にウォッチドッグタイマやソフトウェアリセットを使用することになると思いますが、継続して以前の状態を保持したい場合があると思います。このような状況の時にも使用出来ます。
またシステムの停止回数の累積数積算にももちろん使用出来ます。

0~63までのシステム用領域も読み込むことは可能でした。
何に使用しているかは不明ですが先頭付近はリセット要因の保持に使用している感じです。
192ブロック以降は読み込みに失敗します。

OTAアップデートを使用する場合、OTAアップデートのプログラムがユーザー用領域を使用しているようです。
その範囲は100ブロック目未満くらいまでで、100ブロック目以降の368Bytesが使用可能になるようです。

カテゴリー: ESP8266 パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください