Forum: Mikrocontroller und Digitale Elektronik Stabilität von Lwip und stm32


von Bu B. (Gast)


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

von Stefan F. (Gast)


Lesenswert?

LWIP läuft auf dem ESP8266 mit dem SDK 1.5.4 absolut stabil.

Wenn es bei Dir nicht läuft, wird es wohl eher daran liegen, wie es 
konkret eingebaut wurde oder was drumhum noch läuft.

von Anal Ysator (Gast)


Lesenswert?

Stefan U. schrieb:
> wird es wohl eher daran liegen, wie es
> konkret eingebaut wurde

Nein. Es wird wohl dann an der Entwicklung selbst liegen,
nicht daran wie es eingebaut wird.

Bu B. schrieb:
> auf ein selbstgebautes STM32F4 board.

Der Rest bleibt Rätselraten.

An der eigenen Kreation kann es ja nie liegen.
Nur immer an den anderen ....

von Stefan F. (Gast)


Lesenswert?

Ich merke gerade, daß ich ein lustiges neues Wort erfunden habe: drumhum

von Anal Ysator (Gast)


Lesenswert?

Stefan U. schrieb:
> 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 ....

Dieselbe Frage an den TO.

von Stefan F. (Gast)


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.

von Bu B. (Gast)


Lesenswert?

ich lwip v20

von Anal Ysator (Gast)


Lesenswert?

Bu B. schrieb:
> ich lwip v20

... und an deiner Schaltung kann's ja nicht gelegen haben.

Gell?

Nur mal so zum Eingewöhnen:

Beitrag ""Kettenreaktion" von Relais zu Atmega644 löst Reset aus"

von Anal Ysator (Gast)


Lesenswert?

Stefan U. schrieb:
> Wenn es Dich interessiert, dann lade Dir das SDK
> runter und schau selber nach.

Nö. Ich brauch kein SDK. Und will auch gar nicht drin
herumwühlen.

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

von Frank K. (fchk)


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

von Dieter Graef (Gast)


Lesenswert?

Bei mbed gibt es einen Fix für den STM32 emac Treiber für den Fehler:
STM32 - fix bug were sockets stop receiving data

https://github.com/ARMmbed/mbed-os/commit/9620b0fc7fcb63d792e5b68e8c55e3c31b273811

m.f.G.
Dieter Gräf

von Michi (Gast)


Lesenswert?

http://mikrocontroller.bplaced.net/wordpress/?page_id=1756

Läuft bei mir seit 2 Jahren mit dem STM32F4 Discovery und dem DP83848 
von waveshare durch. Noch hat der Ping-Monitor kein einziges mal 
gemeckert, dass er nicht im 1 Sekundentakt eine Antwort bekommen hätte.

von Anal Ysator (Gast)


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.

von Stefan F. (Gast)


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.

von erwtzutrsd (Gast)


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

von Johannes S. (Gast)


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.

von manuel (Gast)


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

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
Noch kein Account? Hier anmelden.