Hi ich wollte auf ein STM32 + freertos + LWIP ein webserver zum laufen kriegen. Ich will lediglich über HTTP die IP Adresse setzen und ein http bootloader realisieren. Wie geht man da am besten vor? Mit den webserver IAP Beispielen von ST? Der ist recht rudimentär. Gibt es irgendein open source webserver der auf LWIP aufsetzt?
kai schrieb: > Ich will lediglich über HTTP die IP Adresse setzen und ein http > bootloader realisieren. Um über HTTP die IP-Adresse zu setzen, musst du bereits eine funktionierende IP-Adresse haben. Wie stellst du dir das vor?
kai schrieb: > Wie geht man da am besten vor? Das LWIP Manual lesen. https://www.st.com/content/ccc/resource/technical/document/user_manual/65/e8/20/db/16/36/45/f7/DM00103685.pdf/files/DM00103685.pdf/jcr:content/translations/en.DM00103685.pdf Speziell ab Seite 33.
kai schrieb: > ich wollte auf ein STM32 + freertos + LWIP ein webserver zum laufen > kriegen. Ich will lediglich über HTTP die IP Adresse setzen und ein http > bootloader realisieren. Die Generation vor Dir hat dafür bootp/dhcp und tftp entwickelt. Das ist extra leichtgewichtig und kommt ohne TCP aus, damit es damals in den 80'ern noch in ein 8k Bootrom zusammen mit dem Hardwaretreiber passte. Das funktioniert heute immer noch. fchk
Ein Webserver liefert Dokumente aus. Ein Bootloader konsumiert eine Firmware, das wäre bei HTTP Protokoll also normalerweise der Client. Was du vielleicht meinst ist ein Formular, welches den Upload einer Firmware-Datei ermöglicht. Das ist nach HTTP Standard ziemlich kompliziert, weil Datei-Uploads nämlich ursprünglich gar nicht vorgesehen waren sondern später oben drauf geflanscht wurden. Hier ist das beschrieben https://stackoverflow.com/questions/8659808/how-does-http-file-upload-work (erste Antwort). Bevor du das implementiert, lerne erstmal die Grundlagen vom HTTP Protokoll kennen: http://stefanfrings.de/mikrocontroller_buch/Einstieg%20in%20die%20Elektronik%20mit%20Mikrocontrollern%20-%20Band%202.pdf Kapitel 10
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.
Über HTTP die IP-Adresse konfigurieren setzt natürlich voraus, das das Ding schon eine andere IP-Adresse hat.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.