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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.