Hi, habe ein Problem bei meiner Ethernetkommunikation mit 2 Spartan-3A Boards von Xilinx. Habe den EthernetLite Core verwendert und als Prozessor den MicroBlaze Softcore. Mein Problem ist angelehnt an das xemaclite_polling example, welches von Xilinx (EDK) mitgeliefert wurde (siehe Anhang). Ich versuche einen einzelnen Frame zu verschicken (46 entspricht dem Payload): do { Status = XEmacLite_Send(EmacLiteInstancePtr, (u8 *)TxFrame, 46 + XEL_HEADER_SIZE) ; } while (Status != XST_SUCCESS); Das 2. Board pollt auf ankommende Daten: while (RecvFrameLength == 0) { RecvFrameLength = XEmacLite_Recv(EmacLiteInstancePtr, (u8 *)RxFrame); } Habe beide Boards über einen funktionierenden Switch verbunden. Ich starte zuerst das 2. Board (Empfänger) dann den Sender, damit das Senden nicht im Nirvana verschwindet. Komischerweise erkennt der Empfänger keine Daten, hängt also in der while-Schleife fest. Habe zum Testen um das do-while des Senders eine Endlosschleife gemacht, dann werden Daten vom Empfänger erkannt. Kann es sein das es daran liegt, dass sowohl Send wie auch Recv non_blocking sind? Wie kann ich das Problem lösen? Gruss Robbi
Hallo, das Problem ist gelöst. Falls nochmal jemand dieses Problem hat: Bei mir es lag es daran, dass der Switch noch nicht bereit war, das Board aber schon gesendet hat. Klingt im Nachhinein ziemlich einfach und dumm, hat mich aber 3 Tage gekostet.
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.