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
H. R. schrieb: > Wie heisst die erste Funktion/ISR in LWIP die Aufgerufen wird wenn ein > Packet ankommt? Normalerweise netif->input. Eben die, die du (!) in deiner Ethernet-ISR aufrufst. Wenn du die nicht aufrufst, passiert natürlich auch nix.
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?
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.
> 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?
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.
Hi
>> Also musst du deinen Ethernet-Treiber korrigieren
Du liegst wohl richtig.
Hast du eine Idee warum mein PHY den gratuitous ARP durch lässt, aber
die weiteren Packete die ich sende nicht?
H. R. schrieb: > Hast du eine Idee warum mein PHY den gratuitous ARP durch lässt, aber > die weiteren Packete die ich sende nicht? Was sendest du denn noch für Pakete vom Gerät aus?
> Was sendest du denn noch für Pakete vom Gerät aus?
UDP packete. ich habe ein board mit DP83848 phy. Da empfange ich Meine
UDP Packete auf dem PC. Aber der KSZ8863 schickt sie richtung PC nicht
raus.
Was meinst?
H. R. schrieb: > UDP packete. ich habe ein board mit DP83848 phy. Ich dachte du hast einen KSZ8863. H. R. schrieb: > Da empfange ich Meine > UDP Packete auf dem PC. Empfängst du sie jetzt oder nicht... H. R. schrieb: > aber > die weiteren Packete die ich sende nicht?
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?
H. R. schrieb: > Auf dem KSZ8863 board sehe ich dass an den RX Leitungen Daten anliegen. Ich dachte es geht um's Senden. H. R. schrieb: > Woher weiss den eigenlitch STM32 dass ein Daten packet zu ende ist? Du konfigurierst im DMA die Länge...
H. R. schrieb: > -> Board mit DP83848 und stm32f4 -> PC empfängt die UDP packete > -> Board mit KSZ8863 und stm32f4 -> PC empfängt die UDP packete nicht --> du hast einen Verdrahtungsfehler am Board mit KSZ8863
Hi
> Ich dachte es geht um's Senden.
ich sehe auf Rx Leitungen und TX Leitungen was.
RX-> weil das board pinge
TY-> ich sende UDP packete zum PC
> --> du hast einen Verdrahtungsfehler am Board mit KSZ8863
Alle Leitungen 5 mal uberprüft
H. R. schrieb: > RX-> weil das board pinge Warum Grammatik wichtig ist: Weil [ich] das Board pinge oder Weil das Board pingt Ein gewisser Unterschied... H. R. schrieb: > TY-> ich sende UDP packete zum PC TY? Thank You?
>> Warum Grammatik wichtig ist: recht hast du ;-) RX-> PC schickt ping requests an board, die zwar aus KSZ8863 rausgehen, aber nicht in stm32 ankommen TX-> STM32 sendet UDP packete zum PC
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.