ESP8266 - Absturz bei Verwendung von PROGMEM

Hallo zusammen,

ich versuche zurzeit ein Webinterface über den ESP8266 laufen zu lassen (WEMOS D1 Mini). Die ganze Seite ist recht groß (ca. 22KB), weswegen ich zurzeit massive Probleme mit der Anzeige habe. Ich habe nun die folgende Lösung gefunden:

  1. Create a new file in the Arduino IDE named index.h
  2. Put this inside it:
const char MAIN_page[] PROGMEM = R"=====(

/// Your entire webpage here. (Can be multi-line)
)=====";





3. Make sure you save it, and import it in your main sketch file:



#import "index.h"




4. Now to serve the web-page, simply do this:


httpServer.send(200, "text/html", MAIN_page);

Quelle

Allerdings scheitert es bei mir schon beim Einsatz von PROGMEM. Sobald ich das Kennwort einsetze, stürzt der WEMOS ab. Wenn ich probehalber den Befehl im Blink-Beispiel eisnetze, weigert er sich zu Kompilieren. Der Code:

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);     // Initialize the LED_BUILTIN pin as an output
  const char MAIN_page[] PROGMEM = "bla";
}

// the loop function runs over and over again forever
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 active 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)
}

Fehlermeldung:

exit status 1
Fehler beim Kompilieren für das Board LOLIN(WEMOS) D1 R2 & mini.

Was mache ich falsch? Ich bin über jeden Tipp dankbar.

Beste Grüße

Lies mal das.

Gruß Tommy

Nalp:
Die ganze Seite ist recht groß (ca. 22KB)....

Ungewöhnlich groß, für einen Esp...

Schon mal dran gedacht die Seite im Spiffs zu speichern?

Kompfortabler upload & download geht mit meinem Spiffs Datei Manager.

Gruß Fips

Was mache ich falsch? Ich bin über jeden Tipp dankbar.

Du verstümmelst die Fehlermeldung und liest sie nicht.
(oder lässt sie von der IDE verstümmeln)

E:\Programme\arduino\portable\sketchbook\sketch_nov11a\sketch_nov11a.ino: In function 'void setup()':

E:\Programme\arduino\portable\packages\esp8266\hardware\esp8266\2.5.2/tools/sdk/libc/xtensa-lx106-elf/include/sys/pgmspace.h:25:130: error: section attribute cannot be specified for local variables

Tipp:
Meldung lesen und verstehen!

Hi, besten Dank für eure Antworten!

Tommy56:
Lies mal das.

Das hatte ich vorher gelesen, verstehe aber nicht ganz, worauf du hinauswolltest?

combie:
Du verstümmelst die Fehlermeldung und liest sie nicht.
(oder lässt sie von der IDE verstümmeln)

Die Fehlermeldung habe ich aus der Arduino IDE. Gibt es dort eine Option, sich noch mehr anzeigen zu lassen?

Derfips:
Ungewöhnlich groß, für einen Esp...

Schon mal dran gedacht die Seite im Spiffs zu speichern?

Ja ist etwas größer, läuft aber bislang relativ sauber. Ich hatte Lust es hübsch zu machen und tobe mich deswegen auch mit css etc. aus :slight_smile:

Ich hab das Problem nun aber gelöst und glaube es lag irgendwo anders. Es funktioniert wie oben beschrieben, allerdings habe ich den letzten Schritt so angepasst:

server.send_P(200, "text/html", MAIN_page, sizeof(MAIN_page));

Danke für eure Hilfe!

Nalp:
Ich hatte Lust es hübsch zu machen und tobe mich deswegen auch mit css etc. aus :slight_smile:

Kenn ich!

Gruß Fips