web-dev-qa-db-ja.com

ESP8266はファームウェアのフラッシュ後に起動せず、シリアル出力致命的な例外(28)

AI-Thinkerから購入したESP8266で実験を開始しましたが、wikiはここにあります ESP8266 および NodeMC 用です。

私はすでにLuaファームウェアに精通しているので、Luaノードファームウェアをフラッシュしてそれで成功することができましたが、 Luaファームウェア でメモリの問題に直面しています。それから私はLuaの代わりにCでプログラミングを使うことを考えました。私の開発環境はUbuntu14.0です。ここから実行した手順: https://github.com/SuperHouse/esp-open-rtos

gen_misc.shフォルダーにexamples/project_templateを使用してファームウェアをビルドし、デフォルトのビルドオプションで以下のビンを生成することに成功しました。

eagle.flash.bin
eagle.irom0text.bin

次に、以下のコマンドを使用して、esptool.pyで点滅します。

./esptool.py write_flash 0x00000 ESPWorkspace/esp-open-sdk/ESP8266_RTOS_SDK/esp8266_bin/eagle.flash.bin 0x20000 ESPWorkspace/esp-open-sdk/ESP8266_RTOS_SDK/esp8266_bin/eagle.irom0text.bin

そして、ボードからフラッシュした後の出力は次のとおりです。

  Fatal exception (28): epc1=0x40001800, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00007ff0, depc=0x00000000

画面に繰り返し印刷するだけで、Ubuntuでミニコムを/dev/ttyUSB0、115200ボーレートで使用して、USBケーブルを使用したデバイスを接続しました。奇妙なのは、電源のオフ/オンを繰り返した後、ミニコムでジャンクデータを取得することです。

eagle.dumpファイルとeagle.sを使用したデバッグを対象としたネット上の記事。私もその問題を解決していません。

問題を解決するために、誰かが私に指示できますか?

1
sijok_00

私はesp-free-rtosでesp-8266をフラッシュする方法を見つけました。誰かが私の答えから利益を得たなら、私はうれしいです。 NodeMcu WiFi開発ボード-ESP8266(ESP-12E)を使用していました。関連するメモリ位置が利用できないために致命的な例外(28)に関連して直面した問題(そうではないかもしれませんが、私はここでは初心者です)。

2つの別々のプロジェクトは同じですが、ESP8266_RTOS_SDKおよびesp-open-rtosと同じように異なります。

したがって、いくつかの検索の後、esp-open-rtosを続行することを選択したところ、エラーが表示されました。これはフラッシュサイズに関連していました。ここから: https://nodemcu.readthedocs.io/en/master/en/ flash / 答えがわかりました。

Esp-open-rtosルートフォルダで編集されたパラメータファイルは、FLASH_SIZE?= 8、FLASH_MODE?= doutに変更されましたが、ボーレートをESPBAUD?= 1500000に増やしました。

ファームウェアをフラッシュして、Cプログラムをesp8266に取り込みました。

以下に、Cプログラムをesp8266にフラッシュするためのステップバイステップガイドを示します。私の開発システムはUbuntu14.04LTSです。

1.esp-open-sdkをダウンロードしてビルドします

GitHubページに記載されている開発システムで利用可能なすべての要件と依存関係を確認してください。

$ git clone --recursive https://github.com/pfalcon/esp-open-sdk.git

$ make STANDALONE=n 

エクスポートパスを設定します。

$ export PATH=/path_to_Workspace/esp-open-sdk/xtensa-lx106-elf/bin:$PATH

2. esp-open-rtosをダウンロードして、フラッシュを作成します

$ git clone --recursive https://github.com/Superhouse/esp-open-rtos.git

$ cd esp-open-rtos

$ make flash -j4 -C examples/http_get ESPPORT=/dev/ttyUSB0 
0
sijok_00

@Glorfindelには正解がありますが、明確にするためです。

ボードのフラッシュサイズを決定します。

から https://stackoverflow.com/questions/39631011/how-to-determine-flash-size-of-nodemc

(私はHiLetGo nodemcu-32Mbを持っていました)

ファイルを編集します:esp-open-rtos/parameters.mk

  • FLASH_SIZE ?= <N>(ここで、Nはフラッシュのメガビットです)
  • FLASH_MODE ?= dio

(ここでdioへの参照も見つけたことに注意してください: https://groups.google.com/forum/#!topic/esp- open-rtos/-MNCe1NyVKA

これらの2つの変更により、問題が修正されました。

0
user2108373