Bootloader STM32F7/H7 über Ethernet

#6790099
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.
#6790190
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.
Gast #6790628
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 .....
Gast #6790638
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?
#6790670
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren