Stabilität von Lwip und stm32

Gast #5093484
Lesenswert?

Hi
weiss jnd wie stabil Lwip ist? Ich habe eine sehr einfache IPV4 UDP 
basierte Anwendung auf ein selbstgebautes STM32F4 board. Genaugenommen 
habe ich 60 boards. Im schnitt hängt eins der der 60 boards alle 12 
Stunden. Da die Boards wo eingbaut sind, komme ich nicht an den jtag 
adapter -> kein debug posiibilty.
Wenn hängt laesst sich das board noch nicht mal pingen. Ein watchdog ist 
keine option.
Erwarte ich zu viel von LWIP? Oder habe ich ein dummes fehler? UDP 
packet länge ist 512 byte. und davon 40 mal die Sekunde.
Danke
Gast #5093537
Lesenswert?

>> LWIP läuft auf dem ESP8266 mit dem SDK 1.5.4 absolut stabil.
> Welche Version? Es kursiert ja eine 1.4x und eine 2.0x ....

Das weiß ich nicht. Wenn es Dich interessiert, dann lade Dir das SDK 
runter und schau selber nach. Ab behalte im Kopf, daß dieses SDK nicht 
für STM32 geeignet ist.
#5093604
Lesenswert?

Bu B. schrieb:
> Hi
> weiss jnd wie stabil Lwip ist? Ich habe eine sehr einfache IPV4 UDP
> basierte Anwendung auf ein selbstgebautes STM32F4 board. Genaugenommen
> habe ich 60 boards. Im schnitt hängt eins der der 60 boards alle 12
> Stunden. Da die Boards wo eingbaut sind, komme ich nicht an den jtag
> adapter -> kein debug posiibilty.
> Wenn hängt laesst sich das board noch nicht mal pingen. Ein watchdog ist
> keine option.
> Erwarte ich zu viel von LWIP? Oder habe ich ein dummes fehler? UDP
> packet länge ist 512 byte. und davon 40 mal die Sekunde.

Ist das Hardwaredesign garantiert ok? (von Fachleuten durchgecheckt?)

Funktioniert der Ethernet-Treiber einwandfrei? Hast Du das selber im 
Dauertest überprüft?

Wird während des Betriebs Speicher angefordert, der nicht wieder 
freigegeben wird? Fragmentiert der Speicher?

Sind alle Routinen, die in einem Interrupt aufgerufen werden, auch 
garantiert interrupt-fest? Werden kritische Objekte durch Semaphoren 
oder Mutexe geschützt?

Bei so etwas kann man viel falsch machen.

Zudem sind IP, ICMP und UDP so primitiv, dass Du dafür eigentlich kein 
lwip brauchst, sondern das nach kurzer Lektüre der Standards selber 
machen können solltest. Das wäre auch ein Test.

fchk
Gast #5093645
Lesenswert?

Michi schrieb:
> und dem DP83848 von waveshare

Nein. Der DP83848 ist von National Semiconductor.
Soviel Wahrheit muss sein.

Michi schrieb:
> Läuft bei mir seit 2 Jahren

Um eine Bestätigung der "Fehlerfreiheit" zu bringen müsstest
du zumindest in die Nähe dieser Performance gelangen:

Bu B. schrieb:
> UDP packet länge ist 512 byte. und davon 40 mal die Sekunde.

Gilt auch für

Stefan U. schrieb:
> LWIP läuft auf dem ESP8266 mit dem SDK 1.5.4 absolut stabil.

Ich bezweifle mal dass Stefan 40 mal in der Sekunde 512 Bytes
USP Pakete über den ESP8266 jagt.
Gast #5093833
Lesenswert?

> Ich bezweifle mal dass Stefan 40 mal in der Sekunde 512 Bytes
> USP Pakete über den ESP8266 jagt.

Habe ich auch nicht. Der Datendurchsatz sollte keine Rolle spielen. Wenn 
doch (und das will ich hier nicht abstreiten) dann ist die Software oder 
Hardware antürlich fehlerhaft.

> Wenn man solche Infos in den Raum stellt sollte man doch
> wissen wovon man redet ....

Für den STM32 und konkret diese Anwendung kann ich keine direkte Hilfe 
bieten. Allgmein traue ich dem LWIP aufgrund positiver Erfahrung jedoch 
sehr gute Stabilität zu, was mich zu dem Rat bringt, den Fehler erstmal 
woanders zu suchen.
Gast #5093866
Lesenswert?

dazu wäre die konfig der lwipopts.h nötig
ebenso wichtig wäre die frage RTOS? oder polling ?

wichtig sind anzahl der buffer ...
gerade ei 40x pro sek kommen da einige daten zusammen



Ich betreie den STM mit RTOS und lwip
alles parallel :
RTP stream in/out  Audio stream
RTP stream in  Video stream MJPEG
Websocket Secure verindung mit max 8kb Block
HTTP server
usw ...

es geht ..
muss nur konfiguriert werden
Gast #5093920
Lesenswert?

lwIP ist auch in vielen kommerziellen Produkten drin. Z.B. in GigE 
Kameras von Basler und da läuft das sauber im 24*7 Betrieb.
Kritischer ist der Teil wie das Senden/Empfangen der Pakete an die 
Hardware angebunden ist, da unterscheiden sich die Implementierungen ja.
Und ich kenne eine Bude die fast Jahr nach einem Fehler in UDP 
Datenverkehr mit STM32F4 gesucht hat. Das Senden hörte zuverlässig nach 
einigen Wochen oder Monaten auf. Ursache waren Zähler im STM die bei 
Überlauf einen Interrupt generieren. Nach 2^31 gesendeten Paketen wollte 
die HW nix mehr senden.
Gast #5094091
Lesenswert?

Ich würde, wenn es um so kleine HW-Stückzahlen geht, immer dazu 
tendieren etwas fertiges für den Netzwerk-Verkehr zu nehmen. Das läuft 
einfach im Regelfall stabiler.

z.B. gibt es inzwischen viele kleine Linux-Boards mit OpenWRT drauf. Da 
läuft Netzwerk dann out-of-the box und kann seine Applikation im 
Linux-UserSpace laufen lassen. Kommunikation nach außen dann z.B. über 
USB oder so

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