Forum: Mikrocontroller und Digitale Elektronik ESP8266: Non-OS oder RTOS


von BeastyK (Gast)


Lesenswert?

Moin,

ich hab bei Espressif etwas gelesen und rumgeschaut.
In meinem Sammelsurium befinden sich zwei alte ESP-01 Module, die haben 
nie eine Spannungsquelle von nahem gesehen, zumindest bei mir nicht.
Nun würde ich über das Flash Download Tool gerne die Firmware (wenn es 
denn eine ist) auf den neuesten Stand bringen.
Nun stehe ich vor Non-OS und RTOS (Real Time OS)und ehrlich gesagt weiß 
ich nicht was gängig ist oder wo ich zu was greifen sollte...???

Mal abgesehen von FOTA oder Non-Fota und die Frage womit ich das 
eigentliche Programm hochlade und in welcher Sprache ich es schreiben 
soll (oder steckt das schon in der SDK?).

Gruß
das ahnungslose
Beast

von Oliver S. (phetty)


Lesenswert?

willkommen in der Zukunft.
Inzwischen gibt es arduino und andere Entwicklungen für den ESP.
Wo warst du die letzten 2-3 Jahre?

von BeastyK (Gast)


Lesenswert?

Ach, tach auch,

war mit dem DeLorean unterwegs!
Hörte von der Arduino IDE, dachte aber ich müßte trotzdem eine NonOS 
oder RTOS drauf haben.
Gibt ja auch LUA und hab auch was davon gehört das man mit Eclipse IDE 
arbeiten kann...aber nur ganz dunkel!

gruß
Beast

von Stefan F. (Gast)


Lesenswert?

Die Standard AT-Firmware, mir der diese Module normalerweise verkauft 
werden, wurde mit dem NonOS SDK entwickelt und befindet sich als 
vorcompiliertes Binary in diesem SDK.

Man kann das SDK auch einzeln herunter laden. Ein Firmware wird aber 
erst daraus, wenn man mit dem SDK ein Anwendungsprogramm entwickelt, daß 
man in den Flash Speicher lädt.

Programme die mit dem NonOS SDK entwickelt wurden, basieren auf 
Zustandsautomaten, die aus der Main-Loop heraus aufgerufen werden. Das 
entspricht dem Arduino Modell, deswegen enhtält das ESP8266 Plugin für 
Arduino ebenfalls das NonOS SDK (derzeit in Version 1.5.4).

Programme, die mit dem RTOS entwickelt wurden entsprechen eher dem, was 
man von Desktop Betriebsystemen gewohnt ist. Das Betriebssystem verteilt 
die CPU Zeit auf die Tasks. Aus Sicht des Programmierers laufen mehrere 
Tasks quasi parallel.

Die NodeMCU/LUA Firmware ist nicht original. Sie basiert so weit ich 
weiß ebenfalls auf dem NonOS SDK. Diese Firmware enthält einen 
Interpreter für Scripte in der Sprache LUA.

OTA ist ein optionales Feature sowohl im NonOS SDK als auch im RTOS SDK, 
welches Firmware Upload übers WLAN ermöglicht. Die OTA Firmware benötigt 
doppelt so viel Flash Speicher. Eine Hälfte enthält das gerade laufende 
Programm, die andere Hälfte wird für den Download-Vorgang verwendet.

Du hast geschrieben, daß deine ESP-01 Module alt sind. Dann sind es 
vermutlich die blauen mit nur 512k Byte Flash Speicher. Dieser ist für 
das aktuelle SDK zu klein. Aber du kannst das NonOS SDK 1.5.4 sowie die 
darin befindliche AT-Firmware ohne OTA verwenden, das passt so gerade 
noch rein.

Auch für Arduino sind die 512k Byte ausreichend.

Meiner Meinung nach machen sowohl LUA als auch das RTOS SDK wenig Sinn, 
da der Chip dafür zu wenig RAM frei hat, nämlich nur 40kB. Bei LUA muss 
man sein Script und alle Daten in diese 40kB quetschen. Man kann 
allerdings viele kleine Scripte schreiben, die sich gegenseitig starten. 
Bei RTOS wirst du sehen, daß 40kB schnell zu knapp werden, um die Stacks 
zahlreicher Tasks aufzunehmen. Mit dem NonOS SDK hast du das Problem 
nicht, denn dieses hat prinzipbedingt nur einen Stack. Allerdings ist 
das Programmieren von Zustandsautomaten deutlich anspruchsvoller. Doch 
erfahrene µC Entwickler dürfte das nicht abschrecken, denn 
Zustandsautomaten dort zum Alltag.

Weitere Infos zum ESP8266 findest du hier: 
http://stefanfrings.de/esp8266/index.html

von BeastyK (Gast)


Lesenswert?

Danke Stefan,
solche Infos suche ich!
Da hab ich damals zu schnell "hier" gerufen, hab wirklich die Esp-01 mit 
blauer Platine.
Wollte die Non-OS SDK Version 2.1.0 draufbügeln.Geht da denn 
speichertechnisch noch was mit Web-Sockets/Server?

von Stefan F. (Gast)


Lesenswert?

> Wollte die Non-OS SDK Version 2.1.0 draufbügeln

Nein, die 512k Byte Module kannst du nur mit dem NonOS SDK 1.5.4 
verwenden. Ich finde, daß auch nichts dagegen spricht, denn dieses SDK 
läuft stabil.

Eine simple Hello-World Anwendung mit Arduino lässt etwa 40kB Ram und 
etwas mehr als 200kB Flash Speicher für deine eigenen Kreationen übrig.

Ich habe das SDK in seiner Original-Form noch nicht ausprobiert 
(scheiterte an der Installation) aber ich schätze, da wird die 
Speicherbelegung serh ähnlich sein.

Nochmal zur Klarstellung: Du kannst kein SDK auf den Chip "bügeln", 
sondern nur ein Anwendungsprogramm, das mit dem SDK erstellt wurde. Ohne 
Anwendungsprogramm macht der Chip nichts sinnvolles.

von BeastyK (Gast)


Lesenswert?

Ahhh, damit compiliere ich also und in /bin stecken die vorcompilierten 
Sachen für den ESP. OK, nur mit V1.5.4, gut!
Dein Link ist schön, nehmen mal an du hast dir die Mühe mit der Seite 
gemacht, gut gemacht.

von Stefan F. (Gast)


Lesenswert?

Ich muss mich korrigieren:

In 512k Byte passt nur die AT-Firmware vom SDK 1.4.0. Neuere AT-Firmware 
braucht 1M Byte.

Aber für selbst geschriebene Anwendungen kannst du das SDK 1.5.4 
verwenden.

von Robert S. (bimbo385)


Lesenswert?

Ich benutze das Arduino SDK, das funktioniert zumindest für einfachere 
Anwendungen reibungslos und man braucht sich nicht zu intensiv mit dem 
ESP8266 als Chip zu beschäftigen.

Bei mir läuft da z.B. ein TCP to IR-Code Gateway mit dem man per App vom 
Tablet/Smartphone TV+HiFi steuern kann. War mit der entsprechenden 
IR-Lib geradezu lächerlich einfach umzusetzen wenn man bedenkt, dass 
dort neben Ethernet, WLAN auch noch IR-Codes von fast allen Herstellern 
abgedeckt werden...

Mfg Bimbo385

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.