PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Firmware für AVRs und ESPs zur Verfügung stellen



Moppi
05.11.2020, 11:00
Hallo,

ich mache mir gerade etwas Gedanken, was die beste Lösung ist, eine Firmware für einen AVR oder ESP zur Verfügung zu stellen.

Prinzipiell würde ich zwei Wege sehen:

1. Quelltextdateien für Arduino-IDE (IDE aufrufen, Quelltext laden, kompilieren und auf den AVR oder einen ESP hochladen)
2. Binärdateien, die man mit bestimmten Tools auf den AVR oder den ESP lädt

Punkt 1 wäre wohl die einfachste Variante, vielleicht auch die bevorzugte?

Punkt 2 tue ich mich gerade etwas schwerer, weil ich - nach dem Kompilieren - keine Binärdateien im Verzeichnis finde.
Dies hat womöglich damit zu tun, dass ich zurzeit hier nur Arduini-IDE-Dateien (*.ino) verwende und die Binär-Files dann irgendwo temporär gespeichert werden.

Zu Punkt 1 wäre auch interessant, ob es eine Art "Standard" gibt, wie man Quelldateien aufbaut und miteinander über Include-Befehle verlinkt? Denkbar ist hier auch, dass das jeder macht, wie er gerade denkt.

Was gibt es für Programme, mit denen man eine Firmware auf einen AVR oder ESP lädt? Welche Dateien brauchen diese als Input?

Freundlichen Gruß
Moppi

Gnom67
06.11.2020, 07:50
Hinter der IDE von Arduino steckt letztlich auch nur ein Compiler und ein Commandline-Tool (avrdude) zum flaschen der Datei. Abe rdann braucht man auch einen geeigneten Programmer, den man mit den richtigen Pins an den Controller anschließen muss. Letztlich für den Laien/Endanwender nicht unbedingt ein passables Vorgehen.

Für viele Microcontroller gibt es die Möglichkeit eines "Over The Air"-Updates (OTA) - also flashen eines neuen Programms über WLAN. Der ESP kann das. Für AVR braucht man dafür erst mal irgendeine Art der Verbindung. Ich hab bisher nur darüber gelesen, also es selbst noch nicht probiert. Ich denke aber, dass man das prinzipiell nicht nur mit dem integrierten WLAN des ESP machen kann, sondern bei AVR auch per SRD-Funk bzw. über den seriellen Anschluss (dann müsste man dem Enduser einen entsprechenden Adapter mitgeben, um das Gerät mit USB/LAN/WLAN was auch immer zu verbinden).
Der µC holt sich die neue Programmdatei von der Quelle (z. B. aus dem Web), und programmiert sich damit sozusagen selbst.

Andree-HB
06.11.2020, 08:19
Punkt 2 tue ich mich gerade etwas schwerer, weil ich - nach dem Kompilieren - keine Binärdateien im Verzeichnis finde.
Dies hat womöglich damit zu tun, dass ich zurzeit hier nur Arduini-IDE-Dateien (*.ino) verwende und die Binär-Files dann irgendwo temporär gespeichert werden.

Moppi

zu 2.)
http://www.pixelklecks.de/pictures/bin.gif
https://www.instructables.com/HOW-TO-GET-HEX-FILE-FROM-ARDUINO-/


Arduino
https://www.hobbytronics.co.uk/arduino-xloader


ESP
https://www.az-delivery.de/blogs/azdelivery-blog-fur-arduino-und-raspberry-pi/nodemcu-flash-tool

muell-er
06.11.2020, 08:32
eine Firmware für einen AVR oder ESP -- interessant, ob es eine Art "Standard" gibt Beide auf arduinoIDE verbreitet. Da muss die Internetrecherche viel Ergebnisse bringen. Was hast Du bei Deiner Recherche festgestellt ?

Moppi
06.11.2020, 08:48
Hallo,

mit Updates über WLAN habe ich mich schon beschäftigt. Das Problem daran ist, dass man dafür auf den ESP (oder AVR, der an ein LAN-Modul angebunden ist) die Software aufspielen muss. So ganz von selbst geht das nicht. Ich habe das auch bis jetzt nicht gemacht, weil man darüber das Teil hacken könnte, wenn das nicht ordentlich gesichert ist.

Ich habe gestern Abend bei Merlin-Firmware geschaut, die es für 3D-Drucker gibt. Und dann kam auch die Erinnerung langsam zurück, wie ich bei meinem CR20-Pro ein Update gemacht habe. Da gibt es nur die HEX-Dateien. Cura z.B. spielt die dann per USB-Verbindung auf den Drucker. "avrdude" taucht in dem Zusammenhang aber immer wieder auf. AVRDUDE kann wohl schon so einiges, wenn ich mal hier schaue und lese: https://www.mikrocontroller.net/articles/AVRDUDE

Interessanter Weise habe ich jetzt gerade, beim Suchen, wie man mit AVRDUDE HEX-Files aufspielt, hier auf dieser Seite (https://www.arduinoclub.de/2013/12/01/arduino-avrdude-cmd-und-hex-dateien/), was Interessantes gefunden.

Ich suche jetzt mal hier im Forum:

Da habe ich leider nicht zu viel mit den Stichworten "avrdude hex" gefunden. Nur: "uC´s lassen sich nicht flashen ( AVRdude fehlermeldung )"
Aber gut. Prinzip ist hier klar: HEX-File mitgeben und die Konfiguration in einer Datei hinterlegen (Pin-Nummern z.B.).
Eventuell müssten die Quelltexte noch dazu gepackt werden. Das muss ich mir genau ansehen.

Wenn es keine Notwendigkeit für ein Hexfile gibt, dann nur Quelltexte. Z.B., wenn die Quelltexte ohnehin angepasst werden müssten oder wenn die angepasst/erweitert werden können/sollen.
Das muss ich mir dann Schluss ansehen, was, wie, wo und warum.

Ich denke, jetzt habe ich eine Orientierung.

Danke!

MfG

- - - Aktualisiert - - -

Danke nochmal, für die Tipps die eintrafen, während ich meinen Beitrag schrieb!

- - - Aktualisiert - - -

@Andree-HB

"kompilierte Binärdatei exportieren" erzeugt eine Datei *.BIN.
In meinem Fall sieht der Dateiname dann z.B. so aus: "nodeMCU.ino.nodemcu.bin"

Andree-HB
06.11.2020, 11:29
@Andree-HB

"kompilierte Binärdatei exportieren" erzeugt eine Datei *.BIN.
In meinem Fall sieht der Dateiname dann z.B. so aus: "nodeMCU.ino.nodemcu.bin"

...und das ist...tadaaa...eine kompilierte Binärdatei, nach der Du oben ja gefragt hast ! :-)
(Diese kann dann sehr einfach über Bootloaderfunktion übertragen werden - es braucht dazu keine IDE, keine Librarys, usw.)

Moppi
06.11.2020, 11:38
Ja, ich beschäftige mich heute neu damit. Zum zweiten Mal. Habe das vor Monaten schon mal gemacht.
Ich habe auch im Netz gesucht und: nodeMCU = *.bin , AVR = *.hex :Haue


Diese kann dann sehr einfach über Bootloaderfunktion übertragen werden - es braucht dazu keine IDE, keine Librarys, usw.

Hoffentlich funktioniert das dann für ein nodeMCU. Nicht dass sich irgendwann mal jemand fragt, wo das HEX-File für sein nodeMCU / ESP ist.

MfG

Moppi
06.11.2020, 14:34
PS: @Andree-HB (https://www.roboternetz.de/community/members/6642-Andree-HB) habe mir die Links mal angeschaut: super! :) Danke!




Stichworte:
avr nodemcu hex bin firmware arduino arduino-ide avrdude controller microcontroller esp