RT-Thread Version
5.0.2
Hardware Type/Architectures
hpm6300
Develop Toolchain
RT-Thread Studio
Describe the bug
1、在ethernetif.c里面的 netdev_add 函数中:
rt_strncpy(name, lwip_netif->name, NETIF_NAMESIZE);
result = netdev_register(netdev, name, (void *)lwip_netif);
拷贝名称的时候,name数组是定义的6字节。lwip_netif->name是定义的2字节数组。但是NETIF_NAMESIZE 确实6。当创建第一个网口后,再添加第二个网卡的时候,再次拷贝,就会出现把lwip_netif->name后面非0的数据也拷贝进了name。所以把name传给netdev_register 函数注册的时候,由于netdev_register 这个函数里面的name最大又是8,所以就导致名字不一致了。最终调用find函数去查找网卡的时候查找不到。
2、解决方案:NETIF_NAMESIZE 设置为2。也就是网卡名字应该是e0,u0,w1类似。2字节长度限制。或者修改lwip底层。改为6字节。
Other additional context
No response