Linux環境でやることに決めたので、自分で書いてみよう。
前回とほぼ同じになるが、”Hello World”を115200bpsで出力するのだ。
https://github.com/hirokuma/esp8266_helloworld
最初は、user_init()を抜けていたのだけど、そうするとステーションモードになりそうなログを出していたので、while()で止めるようにした。
それだけだと寂しいので、system_deep_sleep()で眠っておいてもらおうとしたのだが、どうもWDTが作動して再起動してしまうようだ(再起動するときも115200bps設定のままになるためか、最初のログがちゃんと見える)。
なので、芸はないけれども、system_soft_wdt_feed()でWDTを起こすようにした。
Programming Guideを見ると、wdt_stop()もあったのだが、6秒以上止めるとHardware WDTでのリセットが作動するらしい。
じゃあ、API名がsoft_wdtと書いてあるけど、実際にはhardwareのWDTを触っているのか?
HDKのドキュメントを検索したけど、WDT関連を見つけられなかった。
うーん、気持ち悪いな。
ちなみに、起動時のログはこういうのを吐き出しているようだ。
ets Jan 8 2013,rst cause:1, boot mode:(3,5)
load 0x40100000, len 1396, room 16
tail 4
chksum 0x89
load 0x3ffe8000, len 776, room 4
tail 4
chksum 0xe8
load 0x3ffe8308, len 540, room 4
tail 8
chksum 0xc0
csum 0xc0
2nd boot version : 1.4(b1)
SPI Speed : 40MHz
SPI Mode : QIO
SPI Flash Size & Map: 32Mbit(1024KB+1024KB)
jump to run user1 @ 1000
boot_v1.4はFLASHの先頭に焼いているのだが、これは2ndブートになるんだな。
ドキュメントには「プログラムできる内蔵ROMはない」とあるので、そこに1stブートがあるのだろう。
ということは、最初に出てくるログは止めようがないんだ。。。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。