一,ZYNQ PS LWIP协议栈遇到的情况说明:
1,vivado2017.4中lwip202支持热插拔,就是慢点,改为自适应立马连上。
2,lwip1401中能快速连上,但是不支持网口热插拔。
3,vivado2018的lwip_202版协议栈例程中,仅对TI、Marvell、Realtek三个厂家的phy芯片做了对口的驱动适配,其余phy芯片在无法通过自协商linkSpeed模式连接硬件时,按需调整官方底层驱动函数即可。
二,上电初始化网口无连接导致主进程锁死
1,问题描述 在Xilinx官方lwip协议栈echo例程中,若将SDK bsp下phy_Link_speed配置为自协商。ARM运行目标程序会循环等待phy芯片协商linkSpeed,在网口无硬件连接时出现协商超时,程序锁死。将bsp相关设置写死(如百兆、千兆),不会触发上述机制。
2,进程死锁机制定位 linkSpeed自协商机制在网口感知无硬件连接时,触发进程等待协商的函数为get_IEEE_phy_speed。echo例程中为了支持lwip协议栈的热插拔(初始化成功后),将该函数放在协议栈自带的250ms定时中断回调函数中执行,以实现实时监听phy_link状态。