Hallo in die Runde, ich habe nun schon mein erstes Projekt "WS2812B Strip an einem ESP8266 gesteuert über eine Weboberfläche" die Tage fertiggestellt und würde gern tiefer in die ganze internet of things Geschichte einsteigen und mir eine "Entwicklungsumgebung" aufbauen. Neben neu angeeigneten Lötkenntnissen, die derzeit noch zu wünschen übrig lassen, habe ich mir nun eine einfache Lötstation und einen Satz Bauteile gekauft. Um die Prototypen herzustellen mache ich mir deshalb ehrlich gesagt keine Gedanken, zumal hier mit öfteren Löten auch die Erfahrung steigt. Was mir allerdings sehr große Schwierigkeiten bereitet, ist das Programmieren auf solchen "embedded systems". Mein Projekt konnte ich mithilfe teils fertiger Quellcodeschnipsel auf lua-Basis (nodeMCU) mehr oder weniger gut fertigstellen. Für wirklich eigene Projekte, wird mir wohl nichts anderes übrig bleiben, als mit C/C++ zu programmieren. Da ich Softwareentwickler bin und mit Java/PHP programmiere, mache ich mir auch darum weniger Gedanken. Was mir allerdings sehr doll aufgestoßen hat, waren die sehr langen Ladezeiten zur Ausführung und die fehlende Ausführungskontrolle, sprich Debugging, z.b. an einem ESP8266-01. Auch hierzu habe ich Tutorials gefunden, aber dennoch nicht zufriedenstellend. Jetzt meine Fragen: Muss ich generell mehr Zeit und Geduld einplanen, wen man Programme für Embedded Systems "mal schnell" laufen lassen möchte oder bedient man sich hier in professioneller Ebene anderer Werkzeuge wie Emulatoren? Sollte ich einen anderen als den ESP8266-01 verwenden? Funktioniert das Debuggen über JTAG besser und vor allem schneller? Für schnelles Prototyping ist es bei mir zumindest beliebt, die Anwendung zu starten und zu schauen, wie sie sich verhält. In größeren Projekten werden eben einzelne Module gestartet oder vorher Programmteile von der Ausführung ausgenommen. Gestern habe ich schon leicht die Krise bekommen, als ein Wert nicht korrekt von einem GPIO gelesen wurde. Das bedeutete jedes mal: Software anpassen und hoffen, dass es so richtig ist ... die Software kompilieren ... die binaries uploaden ... warten, bis der ESP initiert wurde, d.h. vor allem warten, bis er eine IP vom Router bekommen hat ... und dann kommt er endlich irgendwann an die Stelle auf die es ankommt ... und wenn man Pech hat, so wie ich, ist es dutzende male einfach immer noch nicht richtig. Sehr frustrierend. Das muss doch besser / einfacher gehen ... Kann mir jemand helfen? Danke
Hallo, JTAG für die ESP8266 gibt es meines Wissens nicht. Die -01 mit dem 4MBit Flash sind generell etwas langsamer als die -12 mit den großen Flashs, die greifen mit QIO zu. Mit LUA habe ich mich nicht befasst, meine aber, daß man da doch nur LUA-Scripte raufschiebt? Ich programmieren in C /C++ oder mit den Arduiono-Bibliotheken aus der Arduino-IDE. Compilieren und Flashen dauert zwar länger als z.B. bei ein ATMega328, allerdings ist Upload je nach USB-Adapter bis 921kBit möglich (FTDI bei mir), 512kBit machen auch die CP2102 und die CH340. Booten der Module incl. anmelden am WLAN-Router dauert bei mir selten länger als 3-5 Sekunden. Funktionen usw. machen eigenlich bei mir das, was sie sollen. Machen sie das nicht, lasse ich mir eben die kritischen Daten per Seriel.print ausgeben. Das mache ich in PHP auch nicht anders, wenn was unpassend ist, wird eben ein echo $irgendwas reingeschrieben. An "die Stelle" kommt doch am schnellsten, wenn man "die Stelle" mit passenden Daten aufruft und sich die (Zwischen-)Ergebnisse ausgeben läßt. Mehrmals schnell nue falshen passiert bei mir regelmäßig dann, wenn ich was "mal schnell" ändern will und beim Flashen sehe, daß ich vergessen habe, die IF-Bedingung anzupassen usw. Die anderen selbstgemachten Fehler bemeckert ja schon der Compiler. Seltsame Fehlermeldungen nach einer Änderung ganz woanders sind sowieso (meist) nur vergessene ';' am Ende... Ist doch in PHP auch nicht anders. Gruß aus Berlin Michael
Michael U. schrieb: > JTAG für die ESP8266 gibt es meines Wissens nicht. Gibt es schon, funktioniert auch einigermassen, aber eben nur einigermassen. Es gibt einen OpenOCD-Fork, der ist allerdings nicht komplett, man muss etwas dran drehen, je nach benutztem SDK schlägt sonst nämlich der Watchdog zu, wenn man das Programm unterbricht. Der Memory-Download ist allerdings nicht sonderlich schnell, das liegt aber an OpenOCD. Ansonsten kommt man leider um die Trial&Error-Zyklen bei grossen Programmen (die ins SPI-Flash ausgelagert werden müssen) nicht herum. Das einzige, was bei mir einigermassen produktiv war: Socket-basierte TCP/IP-Programme unter Linux vortesten und dann nach FreeRTOS/lwip mit Socket-API portieren. Das letzte 1.3.0 SDK-release tut auch einigermassen stabil, nur muss man Disconnect/Reconnect-Handler implementieren (wenn die Wifi-Verbindung flöten geht). Leider ist bei dem Wildwuchs an semi-funktionalen SDK-Varianten der ESP8266 derart unwirtschaftlich, dass ich lieber zu der Realtek-Lösung (WRTnode, etc.) greife, wenn möglich. Da ist allerdings die Boot-Zeit von Linux (2-3 Sekunden) ein Thema..
Michael U. schrieb: > Die -01 mit dem 4MBit Flash sind generell etwas langsamer als die -12 > mit den großen Flashs, die greifen mit QIO zu. Ach..... Dann darf ich das meinen -01 nicht sagen.... Denn die haben das noch nicht gemerkt. Die funktionieren prächtig mit QIO und 80MHz.
Hallo, meine -01 sind ziemlich alt, die Flashtypen wurden offenbar öfter geändert. Ich hatte mal im Espressif-Forum den Hinweis auf die Headerdatei mit den unterstützten Flashs gefunden und mir angeschaut. Elend lang und ich habe die nicht gespeichert und finden weder den Hinweis noch die .h nicht wieder... Gruß aus Berlin Michael
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.