RT-Thread 中龙芯1C的网络lwip升级到2.1.0

RT-Thread 龙芯1C(智龙开发板)的网络lwip升级到2.1.0

1. 硬件平台

智龙开发板V3.42 。

2. 软件平台

RT-Thread 4.0.0, 其中LWIP 2.1.0 。

3. 问题描述

一直使用 RT-Thread 软件平台,配套lwip1.4.1。 在调试过程中, RTT 组件丰富,尤其是一些小工具,如 ping 、 tftp 进行文件传输。 想使用这些小工具时发现 lwip1.4.1 没有apps目录,不能够使用以上工具。 考虑升级至 lwip 2.1.0。

在 env 中,勾选 lwip 2.1.0 后, 发现 PC 机能 ping 通开发板,而开发板不能 ping 通PC机。如图1 所示。
图1 PC 机能 ping 通开发板

查找原因,用 netstat (msh) 或者 list_if(finsh) 查看当前网络,发现当前的网络没有 link_up 上。 将网络换回原来的 lwip 1.4.1 ,再次查看网络,那时是连接上的。
如图2所示。
图2 RTT-lwip升级两个版本下的网络状态对比.png

lwip 升级到2.1.0后, 打开 netutils 中的 ping , 从开发板 ping PC机不成功,TFTP也不成功,均提示 no route 。但是PC机 ping 开发板成功的. 在 env 打开 调试信息 后再进行ping, 显示的具体信息如图3所示。

图3  lwip 升级到2.1.0后 ping 不成功的提示

4. 解决方法

按照 RTT 官司方论坛,https://www.rt-thread.org/qa/forum.php?mod=viewthread&tid=8048,对 eth 的网络驱动进行修改, 在 synopGMAC.c 文件的最后添加语句:

    eth_device_init(&(eth_dev.parent), "e0");

    eth_device_linkchange(&eth_dev.parent, RT_TRUE);   //添加的语句

如图4所示。

图4 RTT-lwip升级添加语句

5. 检测结果

修改代码后,再次连通网络,并进行 ping 操作如图5,6所示。

图5 RTT-lwip升级修改后查看网络状态

图6 开发板ping通PC机

猜你喜欢

转载自blog.csdn.net/sundm75/article/details/89060870