2016-07-11 12 views
1

Arduino IDEおよび/またはVisual Studio(MS Visual Studio用)で使用する場合、nodemcu/ESP8266に関する基本的な理解の問題があると思います。nodemcu/ESP8266 Arduino IDE - ファームウェアを使用していますか?

このケースでは明らかにC言語で記述されたプログラム/スケッチをアップロードするたびに、単純な「点滅」の例であっても約280kbのバイナリをコンパイルしてアップロードしています。

ファームウェアは毎回アップロードされているのですか、それともESPがArduino IDEで動作するのに必要なライブラリだけですか?

ファームウェアの場合、通常、Arduino IDEを使用しているときにファームウェアをより新しいビルドに「更新」しますか? nodemcu LUAファームウェアを使用する場合、定期的な更新があります。

ありがとうございます!

答えて

1

これは完全に正常です - ESP/NodeMCU用のLuaのようなインタプリタ言語用のコードを書くときは、それを実行するために必要なコードが既にオンになっているので、比較的小さなテキストファイルをアップロードしているだけですチップ、および変更されません。

しかしC言語(たとえばEspressif SDKのみ)やArduino IDEのC++などのコンパイル言語で作業を開始すると、コードが変更されるたびにファームウェア全体が置き換えられます。これには、TCP/IPスタック、WiFi管理、PHY/MACインターフェイスを制御するロジック、ミニOS、およびESP8266を動作させるための他の多数のビットが含まれます。コードがシンプルな「点滅」シーケンスのように見える場合でも、スケッチサイズを大きくするために、背後で実行されるコードがたくさんあります。

一般に、スケッチコードを変更するたびに、ESP8266の起動可能な実行可能バイナリを作成するために必要なすべてのコピーが作成されます。これが280KiBファイルの原因です。コードの各コピーには、システムレベルコードの最新のコピー(または少なくともIDE上にあるもの)が含まれているため、個別の更新プロセスはありません。 - スケッチをアップロードするたびに、システムコードも更新されます。

また、Espressif SDKのArduino抽象化には余分なオーバーヘッドがあり、バイナリサイズが大きくなります。

3

基本的にあなた自身のコードと他の多くのコード/ライブラリの組み合わせであるファームウェアをビルドします。 他のすべての部分はArduino ESP8266コアの一部です。実際には更新されています(ここにはhttps://github.com/esp8266/Arduino)。また、それ自体にはEspressif SDKが含まれており、更新版(https://github.com/esp8266/Arduino/tree/master/tools/sdk)も取得されます。 NodeMCUと同様に、定期的なアップデートを得ることができますが、それらはコアであり、ファームウェアに取り込む唯一の方法はスケッチを再コンパイルすることです。

+0

ありがとうございます!それは私が期待していたことだ。 Arduino IDEのArduino Board Managerが最新のものだと言っているときに、Arduino ESP8266コア/ Espressif SDKをどのように更新するかは、わかりません。 GITリポジトリをダウンロードし、https://github.com/esp8266/Arduino/blob/master/README.mdに記載されているようなArduino IDEにインポートする必要がありますか? どのバージョンを使用しているのか、どうすれば分かりますか?他の「夜間」の支店などがありますか? – nemail

+0

実際にArduino IDEを使用していないので、私は100%確信していませんが、コアのインストール手順を見ています(http://esp8266.github.io/Arduino/versions/2.0.0/doc/ installation.html#)、私は、ボード管理者が新しいバージョンを通知すると、開発者がそれらをリリースしてからインストールできるようになると思います。コアを更新するだけで、それに取り組んでいるすばらしい開発者がSDKなどを更新します。これはその中で使用されています。 – cranphin

関連する問題