ESP8266で、気になっていることを確認しておく。
確認したバージョンは、Non-OSのV1.5.2だ。
”don’t use rtc mem data”は私が原因なのか?
起動すると「don't use rtc mem data」というメッセージがコンソールに出てくる。
直訳したら「RTCメモリデータは使うな」だけど、何だかよくわからない。
前回は「なんだったんだ」で終わらせたけど、もう少し見ておく。
以前書いたHello Worldに、少し出力を追加した。
https://github.com/hirokuma/esp8266_helloworld/commit/fb870850fd9d9468e119e7b928055826525ecff6
user_rf_pre_init()とuser_init()で出して、どこら辺で出ているのかを確認する。
通信速度があっていないところは文字化けしているが、こちらで出しているコンソールログは化けてない。
これを見ると、user_rf_pre_init()とuser_init()の間で出していることがわかる。
なので、実装した箇所で出力する可能性があるのはuart_init()だけど、user_rf_pre_init()では出てないので違うと思う。
思うが、確認したい。。。
起動時が74880bpsなんて変な速度でさえなければ。。。
うちのPC環境では74880bpsを受け取れないので、ロジアナで見た。
uart_init()をコメントアウトして実行だ。
ブログエディタのプラグインがまだ使えないので、ログが見づらいが許しておくれ。
ets Jan 8 2013,rst cause:2, boot mode:(3,6) load 0x40100000, len 1856, room 16 tail 0 chksum 0x63 load 0x3ffe8000, len 776, room 8 tail 0 chksum 0x02 load 0x3ffe8310, len 552, room 8 tail 0 chksum 0x79 csum 0x79 2nd boot version : 1.5 SPI Speed : 40MHz SPI Mode : QIO SPI Flash Size & Map: 32Mbit(1024KB+1024KB) jump to run user1 @ 1000 VsXX OY F SDK ver: 1.5.2(80914727) compiled @ Jan 29 2016 17:26:12 phy ver: 484, pp ver: 9.6 user_init ets Jan 8 2013,rst cause:2, boot mode:(3,7) load 0x40100000, len 1856, room 16 tail 0 chksum 0x63 load 0x3ffe8000, len 776, room 8 tail 0 chksum 0x02 load 0x3ffe8310, len 552, room 8 tail 0 chksum 0x79 csum 0x79 2nd boot version : 1.5 SPI Speed : 40MHz SPI Mode : QIO SPI Flash Size & Map: 32Mbit(1024KB+1024KB) jump to run user1 @ 1000 VsXX OY F VY1 P S ! SDK ver: 1.5.2(80914727) compiled @ Jan 29 2016 17:26:12 phy ver: 484, pp ver: 9.6 user_init
赤文字は、こちらがログ出力させている文字列。
あれ・・・don’t useも出てないが、user_rf_pre_init()も出てない。
また、最近なのかどうかわからないが、リセットが2回走ってから起動しているのが気になる。
boot modeの出力が2回あるが、最初は(3, 6)、次は(3, 7)。
Causeとboot modeはこういうことらしいので、リセットピンでリセットして、起動デバイスはFLASHということだろう。
http://www.esp8266.com/viewtopic.php?p=2096#p2112
最後の6とか7とかが、わからないままだ。
よくわからないので、user_rf_pre_init()を空実装にすると、boot mode(3, 7)だけだ。
うまく説明できないが、user_rf_pre_init()に実装を置くのは良くない感触だ。
また調べるかもしれないが、今回はここまでにしておこう。
あ、user_rf_pre_init()を空実装にして、user_init()でuart_init()を呼ぶようにしたら”don’t use rtc” が出るようになった。
くっ・・・気になるが、今回はここまでだ。
リンクサイズ
Makefileに、-lsslだの-lsmartconfigだの入っているが、使ってないので、バイナリに影響が出てるのかどうかを確認する。
こっちはビルドするだけだ。
中身はあまりチェックせず、sizeコマンドで大きさだけ見てみる。
IoT_Demoと同じ構成でビルド。
size .output/eagle/debug/image/eagle.app.v6.out text data bss dec hex filename 215206 884 25184 241274 3ae7a .output/eagle/debug/image/eagle.app.v6.out
以下をコメントアウトしてビルド。
# -lupgrade\
# -lssl \
# -lpwm \
# -lsmartconfig \
size .output/eagle/debug/image/eagle.app.v6.out text data bss dec hex filename 215206 884 25184 241274 3ae7a .output/eagle/debug/image/eagle.app.v6.out
同じやね。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。