問題タブ [spiffs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
arduino - 無関係なコードを追加すると SPIFSS コードがクラッシュする
奇妙な動作に遭遇しています。ESP8266 arduino SPIFFS を使用して構成設定を保存しています。これが mycode の関連部分です。
上記のコードでは、UART はコマンド「XXX\r」を受信し、saveConfig() を実行して構成パラメーター ssid とパラメーターを SPIFSS に保存します。このコードは、まったく関係のないコードを追加するまでは問題なく動作します。
これが新しいコードの外観です。
追加のelse句を追加した後、「XXX\r」をUARTに送信してsaveConfig()を引き起こすと、例外エラーが発生します。新しいコードが実行されることさえなかったので、これは不可解です。
例外エラーは次のとおりです。
esp8266 - esptool を使用した ESP8266 へのファームウェアのダウンロード
構成設定を保存するために SPIFFS で ESP8266 Arduino を使用しています。
このコマンドは、Arduino の ESP8266 にバイナリの firmware.bin をフラッシュするために使用されます。
このコマンドは、SMING フレームワークを使用してバイナリの firmware.nin を ESP8266 にフラッシュするために使用されます。
Arduino フラッシュ ダウンロードに使用されるコマンドには、いくつか不可解な側面があります。
SPIFFS for Arduino 用の個別の bin ファイルがないのはなぜですか? esp8266\tools\mkspiffs フォルダーにあるツール "mkspiffs.exe" が、bin ファイルのコンパイル中に使用されていないことに気付きました。なぜ使用されないのですか?
Arduino esptool は、SPIFFS ファイル システム アドレスへの割り当てに使用するアドレスをどのように認識しますか?
ESP8266 Arduino の SPIFFS で奇妙な動作に遭遇したので、バイナリ ファイルのプログラミングのプロセスを理解したいと思います。SMING フレームワークを使用した同様のファームウェアで問題はありません。esptool を使用してファームウェアが ESP8266 にフラッシュされる方法が問題の原因であるかどうか疑問に思っています。
c++ - SPIFFS の最初の行のみが WiFi.begin() で動作します - ESP8266-12E
以下のコードを実行すると、1 行だけが機能します。SSID の書き込み/読み取り部分をコメントアウトすると、パスワードが機能します。パスワード部分をコメントアウトすると、SSID が機能します。しかし、両方をWiFiに残しておくと、接続できなくなります。健全性チェックとして WiFi.begin() に SSID とパスワードの両方をハードコーディングし、十分に接続できることを確認しました。したがって、SPIFFS を使用して複数の行を書いたり読んだりする方法と関係があるに違いありません。ただし、両方の行を正しく返すので、Serial.println() を使用すると、少なくともそう思われます。また、文字列を返す関数を使用することにあまり興奮していないため、SPIFFS の代替案も検討しています。もちろん、char* を返す関数が必要ですが、私の C はかなり錆びています。また、さまざまなターミネータ \r を試してから \0 読み書きレベルで試しましたが、これまでのところ何も機能していません。弦も切ってみました。私は基本を省略しましたが、Serial.println() が一見正しいように見えるので、SPIFFS.begin() とフォーマット (もちろんその順序ではありません) を実行します。win10 x64を使用して、最新のarduino IDEとSPIFFSをインストールしました。コードは次のとおりです。
file-upload - SPIFFSアップロードサイズの説明
私はESP8266、具体的にはESP-12-Eを持っています。
この aruino ツールを使用して、利用可能な 4MB の SPIFFS ストレージにデータをアップロードしています: https://github.com/esp8266/arduino-esp8266fs-plugin
いくつかのファイルをアップロードしています。私の計算では、合計すると
ファイルをアップロードするとき
[SPIFFS] データ : /Users/andy/Documents/Personal/proj/p/relay_controller/data
【SPIFFS】サイズ:1004
[SPIFFS] ページ : 256
[SPIFFS] ブロック : 8192
/css/bootstrap.min.css
/かなり.html
/wifi.htm
.DS_Store をスキップしています
[SPIFFS] アップロード: /var/folders/kq/jq1t3j257tn7n_dqy0m9_zl80000gn/T/arduino_build_804509/relay_controller.spiffs.bin
[SPIFFS] アドレス: 0x300000
[SPIFFS] リセット: nodemcu
[SPIFFS] ポート : /dev/cu.SLAB_USBtoUART
[SPIFFS] 速度: 115200
/var/folders/kq/jq1t3j257tn7n_dqy0m9_zl80000gn/T/arduino_build_804509/relay_controller.spiffs.bin から1028096バイトをアップロードしています
質問のある部分を太字にしました。
1004サイズって書いてあるけど…1004サイズって何!?
最後に最も重要なことは、アップロードされた 1,028,096 バイト、つまり 1004 KB と表示されていることです。これは 1004 を説明する必要があります。