2017-08-16 14 views
0

私はメモリの38%を何かで使用されているように見える、ESP8266のためのArduinoの上の単純な点滅スケッチをコンパイル:ESP8266 Arduinoの使用可能なメモリ

グローバル変数は、動的メモリの31576バイト(38%)を使用しますローカル変数には50,344バイトが残っています。最大は81,920バイトです。

このメモリはどこにありますか?多くのメモリを必要とするアプリケーションがあり、Arduino内蔵のライブラリの使用を無効にしたり減らしたりできるかどうかを見たいと思っていました。以下

コード:

void setup() { 
    pinMode(LED_BUILTIN, OUTPUT); 
    // Initialize the LED_BUILTIN pin as an output 
} 

void loop() { 
    digitalWrite(LED_BUILTIN, LOW); 
    // Turn the LED on (Note that LOW is the voltage level 
    // but actually the LED is on; this is because 
    // it is acive low on the ESP-01) 
    delay(1000); 
    // Wait for a second 
    digitalWrite(LED_BUILTIN, HIGH); 
    // Turn the LED off by making the voltage HIGH 
    delay(2000); 
    // Wait for two seconds (to demonstrate the active low LED) 
} 

答えて

0

それはあなたが初期化し、ファームウェアのLIBS変数で使用されています。もっと長いコードを書こうとするなら、より多くのメモリが必要になります。 ESP用の基本ライブラリーを使用することにより、構成およびファームウェア設定用のメモリーを既に占有しています。プログラム内で変数と単純なロジックを少なくすると、プログラムのサイズが大幅に減少します。実際には、大規模なプログラムでもすべてのライブラリが含まれているので、大規模なプログラムであっても、少ないメモリ量で済みます。 しかし、それが本当に大規模であれば、論理に集中してESPのストレスを軽減し、複雑な計算やロジックを実行するためにメインフレームコンピュータに与えます(消費電力の削減と放熱の低減にも役立ちます)。

+0

私はそれを理解していますが、使用していない場合はどのライブラリを無効にすることができますか? – s4581218

+0

ファームウェアセットアップシステムです。我々はそれを無効にすることはできません。しかし、大量のメモリを必要とせずに、中規模のプログラムをESPにダンプできます。必要なファイルはすべてファームウェア設定自体に既に含まれているためです。あなたが今使用する唯一のメモリは、あなたのロジックと変数宣言のためだけです。 – Perseus784

関連する問題