Wie kann ich ESP32-Programm(-teil/e) von einer SD-Karte laden?

3 Antworten

Das geht nicht so einfach. Der microcontroller führt nur Programme aus dem flash Speicher aus. Du kannst also nicht einfach ein Programm von der SD Karte ausführen. Du hast ja kein Betriebsystem das dieses in den RAM laden kann.

Du bräuchtest einen Interpreter oder so. Aber ich kenne keinen c++ interpreter für esp32.

Man kann vielleicht irgendwie mit dem bootloader von der SD Karte Sachen in den flash schreiben, aber das ist sehr aufwendig und technisch komplex. Heißt nicht umsonst ROM, read only memory...

Kannst übrigens auch python Code auf dem eps32 laufen lassen, mit Micropython oder circuitpython. Der wird interpretiert, geht also auch von SD Karte...

Pinzipiell ist ed zwar möglich aber nicht wirklich einfach umsetzbar. Für gewöhnlich erzeugt die IDE ein komplettes Code Image welches zum einen statische Adressen beeinhaltet und zum anderen die Hardware neu intialisiert.

Damit es funktioniert müsstest du also die IDE erstmal dazu bringen Position Independend Code zu generieren und du musst sie auch dazu bringen, dass der erzeugte Code von sich aus nichts am Prozessor ändert sondern eben wirklich nur den Teil an Code generiert den du ausführen willst.

Es gibt hierfür kein Standarddateiformat weil es auch nicht sonderlich verbreitet ist das auf einem uC zu tun. Die Endung wäre aber typischerweise .elf oder .bin ist aber eigentlich komplett egal, da die Endung beliebig vergeben werden kann. Also du kannst deine Files dann auch .jpg als Endung geben und das würde nichts ändern.

Du könntest mehrere Images auf der SD Karte haben und dann über den OTA Weg einspielen und ausführen.
Jedes der einzelnen Programme braucht dann aber auch den Teil mit der Programmauswahl


Blumenmagier 
Beitragsersteller
 27.02.2024, 22:54

hast du ein beispiel für mich?