Forum: Mikrocontroller und Digitale Elektronik Bootloader STM32F7/H7 über Ethernet


von Frank K. (fchk)


Lesenswert?

Hallo!

Ich brauche einen Bootloader für Ethernet für STM32F7/H7, am Besten per 
TFTP. Gibts da was fertiges, oder muss ich mich selber hinsetzen?

fchk

von Pandur S. (jetztnicht)


Lesenswert?

Bedeutet, du hast das ganze Ethernet Handling im Bootloader. Das wird 
klotzig, aber machbar. Vielleicht hat's jemand als Fingeruebung gemacht 
und auf Github geworfen, allenfalls fand's ein Hersteller als noetiges 
Tool.
Allenfalls ist sowas zu kaufen. Und sonst eine gute Uebung. Fuer einen 
Profi, sonst ist nichts.

von Gerd E. (robberknight)


Lesenswert?

Ich schlage vor das ganze IP-Handling nicht im eigentlichen Bootloader 
zu machen. Ist viel Code und da kann es durchaus auch mal passieren daß 
man einen Bugfix machen muss, den man dann schwer in den Bootloader 
reinbekommt.

Vorschlag daher:

Pack nen kleines SPI-Flash mit aufs Board, Größe 2x der Flash Deines µC. 
In Deinem normalen Programmcode hast Du dann eine Funktion um ein Update 
zu empfangen. Da braucht es dann auch kein nerviges TFTP sein, das 
kannst Du bequem per HTTP hochladen oder so. Hinterher Prüfsumme 
checken, RSA-Signatur, was Du willst.

Wenn Programm erfolgreich empfangen machst du einen Neustart in den 
Bootloader. Der Bootloader prüft jetzt ob ein neues Programm vollständig 
im SPI-Flash ist. Wenn ja, kopiert er es von dort in den Controller und 
startet es.

Sollte es zu irgendeinem Fehler kommen, hast Du noch den 2. Sektor im 
Flash mit einem anderen Programm. Das kann die Version vorher sein oder 
ein älteres "Golden"-Image. Z.B. über einen Taster, Watchdog oder 
ähnliche Funktion kannst Du das dann reinflashen lassen.

von Frank K. (fchk)


Lesenswert?

Na ja, ich brauche ja kein TCP, nur ARP, UDP und ICMP. Das hat vor 30 
Jahren in 8k-Bootroms auf den Netzwerkkarten reingepasst und sollte 
eigentlich nicht so das Problem sein.

fchk

von hard werker (Gast)


Lesenswert?

Frank K. schrieb:
> Das hat vor 30
> Jahren in 8k-Bootroms auf den Netzwerkkarten reingepasst und sollte
> eigentlich nicht so das Problem sein.

Da konnte man mit einem solchen Kleinod auch noch richtig
Geld verdienen. Ausserdem wird man das wohl in Assembler
geschrieben haben .....

von Sid Greybeard (Gast)


Lesenswert?

> Da konnte man mit einem solchen Kleinod auch noch richtig
> Geld verdienen. Ausserdem wird man das wohl in Assembler
> geschrieben haben .....

...ach, konnte nicht auch schon "damals" jedes Compiler-Backend 
"assembler schreiben" und die Linker es "ROM-able" machen?

Ich meine, da geht es doch nicht um Rechner a la PDP-11 mit 
Knebelschalter an der Konsole um den Bootloader einzugeben sondern um 
PCs, ja?

von Gerd E. (robberknight)


Lesenswert?

Frank K. schrieb:
> Na ja, ich brauche ja kein TCP, nur ARP, UDP und ICMP.

niemand zwingt Dich das mit TCP zu machen, Du kannst meinen Vorschlag 
auch gerne mit TFTP umsetzen wenn Du möchtest. Ich wollte nur aufzeigen 
daß Du dann gleich viel mehr Möglichkeiten hast. Auch langfristig, falls 
Du z.B. irgendwann mal auf IPv6 migrieren möchtest.

Was Du auch noch bedenken solltest ist die Zuweisung der IP. Also 
entweder nur die MAC hinterlegen und nen DHCP-Client implementieren oder 
Du musst irgendwo MAC, IP, Netzmaske, Standardgateway hinterlegen. Im 
SPI-Flash könntest Du problemlos einen Sektor dafür vorsehen.

von Johnny B. (johnnyb)


Lesenswert?

Frank K. schrieb:
> Gibts da was fertiges

Etwas ganz fertiges gibts wohl nicht, da jede Hardware völlig anders 
ist, also die Kombination von Mikrocontroller, Speicher, MAC, PHY, etc.
Aber ein Grundgerüst fürs Nucleo-F767ZI Board gibts fixfertig z.B. von 
Oryx Embedded:
https://www.oryx-embedded.com/products/CycloneBOOT.html

: Bearbeitet durch User
von Georg (Gast)


Lesenswert?


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.