2016/02/04

[esp8266]気になっていることを確認(don’t use rtcとリンクサイズ)

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()で出して、どこら辺で出ているのかを確認する。

image

通信速度があっていないところは文字化けしているが、こちらで出しているコンソールログは化けてない。
これを見ると、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 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。