0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

M5Stackを動かしていたら、なんか一定時間でリセットする件

Posted at

M5Stackを動かしていたら、一定時間でリセットしてしまう件

とてーも初歩的なミス集ですが、初心者で悩んで抜け出せない場合の手助けになればと。。。

事の始まり

なんかですね、そんなコード書いていないのにM5Stackがリセットしてしまったってこと、経験無いですか??
そんなとき、可能性があるところとして、wdtがはたらいてしまっているという可能性があるようです。

対応の手順として、まずシリアルモニターを繋ぎますと・・・


[IGuru Meditation Error: Core  1 panic'ed (Interrupt wdt timeout on CPU1)

みたいな文言が出ている場合、はい、wdt働いてます。
(実際はこの文言の後に続けてCPU0とCPU1のそれぞれのメモリマップとか出力されてくるので、何かやらかしている事はすぐ実感できます)

こういう原因として、なかなか戻ってこない重い割り込み処理などをしているとそうなることがあるそうです。
でも、わたくし、割り込み処理じゃないのにこれ出ました。。。

私の経験として2個ほど・・・

1個目 「無い配列を参照してしまった」

これはまぁ、起こった時点で「あ、ダメじゃん」ってすぐ気が付くので特に悩みませんね。

2個目 「M5のLCDに、millis()を表示させた」

これはですね、正確にはmillis()を文字列に変換しないままStringの配列に放り込んで、順番に表示させてたのが原因でした。

これは悩みました。
だってエラー出てなかったし。。。
でも、LCDにはmsの時間は出ずに文字化けしまくるので、「はて?そんなバグるほどなにもコード書いていないとおもふ??」なんて考えこんでしまいました。

まとめ

結局のところ、データ形に適した扱いをしてないのが原因で、意図しない領域を参照してフリーズしてしまっただけですね。

そもそも私のようなケアレスミスラー的には、「コンパイラさん、何故、文句言ってくれなかったの!?」という他力本願を。。。←ダメな人

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?