kai schrieb:
> Ich will lediglich über HTTP die IP Adresse setzen und ein http
> bootloader realisieren.
Ein Bootloader über HTTP? Das überzeugt mich nicht, da viel zu komplex
und fehlerträchtig. Ein Bootloader solltest Du so konzipieren daß er
über die gesamte Lebensdauer des Produkts hinweg nicht mehr geändert
werden muss.
Alternativer Vorschlag:
- Du packst ein SPI-NOR-Flash mit mindestens der doppelten Größe des
Flashs Deines STM32 auf die Platine. Kostet vielleicht 25 Cent in
kleinen Stückzahlen.
- Der Webserver läuft in der normalen Firmware (=nicht dem Bootloader)
und kann per HTTP-Upload neue Firmware entgegennehmen. Diese wird dann
im SPI-Flash gespeichert.
- Wenn alle Prüfsummen etc. ok sind, wird eine Markierung (z.B. im
ersten Sektor des SPI-Flash) gesetzt und der Bootloader gestartet
- Der Bootloader prüft den SPI-Flash-Inhalt und wenn er die Markierung
findet, flasht er den Applikationsbereich des STM32 mit dem Inhalt des
Flash
- Das SPI-Flash enthält zusätzlich einen 2. Bereich mit einer bekannt
guten Firmware. Wenn man einen Taster drückt, Magnet gegen Reed-Sensor
hält oder ähnliches beim Neustart, wird nicht die normale Firmware
gestartet, sondern diese Basisfirmware geflasht.
Damit kann man das Gerät immer noch "retten" falls die normale Firmware
irgendeinen Bug enthält oder aus anderem Grund nicht mehr erreichbar
ist. Mit Hilfe dieser Basisfirmware kann man dann wieder neuere, gefixte
Versionen der Firmware aufspielen.