2015/12/29

[esp8266]Non-OSのHello World

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ブートがあるのだろう。
ということは、最初に出てくるログは止めようがないんだ。。。

image

0 件のコメント:

コメントを投稿

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