Aufgrund der standardmäßigen Zeitüberschreitungsperiode in der Simple Socket Server-Vorlage besteht die Möglichkeit, dass die automatische Aushandlung mit 1G-Geschwindigkeit in Cyclone® V-, Cyclone® 10- und Max® 10-Geräten fehlschlägt.
Um dieses Problem zu umgehen, muss der Benutzer den BSP-Quellcode ändern, um die Timeout-Verzögerung bei der automatischen Aushandlung zu erhöhen, und die neue ELF-Datei gemäß den folgenden Anweisungen neu kompilieren.
Öffnen Sie die folgende Datei im Projektverzeichnis:
.. /software/<project_name_bsp>/drivers/src/altera_avalon_tse.c
Ändern Sie die Zeitüberschreitungsverzögerung von "usleep(1000)" in "usleep(5000)", wie im nächsten Teil des Codes gezeigt:
alt_32 alt_tse_phy_restart_an(alt_tse_phy_info *pphy, alt_u32 timeout_threshold) {
........................................
while(alt_tse_phy_rd_mdio_reg(pphy, TSE_PHY_MDIO_STATUS, TSE_PHY_MDIO_STATUS_AN_COMPLETE, 1) == 0 ){
if(timeout > timeout_threshold) { tse_dprintf(4, "WARNUNG: PHY[%d.%d] - Automatische Aushandlung FEHLGESCHLAGEN\n", mac_group_index, mac_info_index);
/* Vorherige MDIO-Adresse wiederherstellen */
alt_tse_phy_wr_mdio_addr(Pphy, mdioadd_prev);
TSE_PHY_AN_NOT_COMPLETE zurückgeben;
}
usleep(5000); Aktualisiert von uSleep(1000)
}