LWIP , PHY und RX Funktion

#5632334
Lesenswert?

Hi
Kennst sich jnd aus?
Ich bringe gerade ein PHY (KSZ8863) mit einem STM32 zum laufen.
Ich kann das Board noch nicht pingen.
Von PHY kommen schon irgendwelche signal bei STM32 an.
Ich wurde gerne in LWIP ein breakpoint setzen und debuggen.
Wie heisst die erste Funktion/ISR in LWIP die Aufgerufen wird wenn ein 
Packet ankommt?

Danke
#5632449
Lesenswert?

Vielen dank für die schnelle Antowrt,
Der RX Interrupt kommt nicht.
ARP funktioniert aber. Daraus schliesse ich ja dass IP und MAC Adresse 
schon mal an PHY weiter gereicht wurden.
Weisst du auch in welche Funktion in LWIP IP und MAC Adresse an PHY 
geschickt werden?
Gast #5632458
Lesenswert?

H. R. schrieb:
> Der RX Interrupt kommt nicht.
> ARP funktioniert aber.

Das widerspricht sich. Wenn nichts empfangen werden kann (da der 
Empfangsinterrupt nicht kommt), kannst du auch keine ARP-Daten 
empfangen.

Was meinst du genau mit "ARP funktioniert aber"?

H. R. schrieb:
> Daraus schliesse ich ja dass IP und MAC Adresse
> schon mal an PHY weiter gereicht wurden.

Dann aber nur das gratuitous ARP Paket.

H. R. schrieb:
> Weisst du auch in welche Funktion in LWIP IP und MAC Adresse an PHY
> geschickt werden?

Das sind mehrere Stufen. Der Ethernet-ARP Treiber erstellt 
Ethernet-Pakete. Die werden dann an deinen Ethernet-Treiber übergeben. 
Dieser muss dann in deiner netif->linkoutput das Paket absenden. Benutzt 
du DHCP oder statische IP? Hast du dir mal den Log anzeigen lassen? Der 
ist sehr hilfreich.
#5632489
Lesenswert?

> Was meinst du genau mit "ARP funktioniert aber"?
> Dann aber nur das gratuitous ARP Paket.
Joop ist ein gratuitous ARP. LWIP ruft  etharp_request_dst auf.
Empfangen tue ich trotzdem nix. UDP packete über netconn senden geht 
auch noch nicht. Ich benutze ein KSz8863 dualport ethernet.

> Das sind mehrere Stufen. Der Ethernet-ARP Treiber erstellt
> Ethernet-Pakete. Die werden dann an deinen Ethernet-Treiber übergeben.
> Dieser muss dann in deiner netif->linkoutput das Paket absenden. Benutzt
> du DHCP oder statische IP? Hast du dir mal den Log anzeigen lassen? Der
> ist sehr hilfreich.

Statische IP Adresse. gratuitous ARP wird in wiresharc gesehen.
Was für logs willst du sehen?
Gast #5632492
Lesenswert?

H. R. schrieb:
> Was für logs willst du sehen?

Die von lwIP... Das was über LWIP_PLATFORM_DIAG ausgegeben wird. Aber 
dein Problem ist ja, dass der Ethernet-Empfangs-Interrupt nicht kommt. 
Also musst du deinen Ethernet-Treiber korrigieren, das hat mit lwIP 
nichts zu tun.
#5632739
Lesenswert?

Hi
> Ich dachte du hast einen KSZ8863.
Ich habe ein altes board mit DP83848. Da geht alles. Das neue Board ist 
mit KSZ8863. Da geht es nicht.

-> Board mit DP83848 und stm32f4 -> PC empfängt die UDP packete
-> Board mit KSZ8863 und stm32f4 -> PC empfängt die UDP packete nicht

Auf dem KSZ8863 board sehe ich dass an den RX Leitungen Daten anliegen. 
Bleibt die Frage warum beim STmn32f4 kein DMA fnished Interrupt 
ausgelöst wird.

Woher weiss den eigenlitch STM32 dass ein Daten packet zu ende ist?

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