LWIP学习营第一周入门移植问题汇总贴

发布于 2018-05-13 21:22:19
请按以下合适回帖说明自己遇到的问题:
1.开发平台:
2.软件版本
3.问题详细描述以及自己做过的解决尝试:

查看更多

关注者
0
被浏览
2.9k
6 个回答
风来吴山
风来吴山 2018-05-13
1、stm32f107
2、lwip2.0.2/lwip1.4.1
3、lwip2.0.2
使用的stm32f107这个bsp,在stm32_eth.c文件中将宏定义修改为RMII模式,IO端口重映射,之后编译下载,串口提示lwip2.0.2和tcp/ip初始化成功,但是list_if()之后,flags显示link down,ping不通pc机(板子直接用网线连接的笔记本),LED绿灯常亮黄灯闪烁。
之后使用MDK5进入仿真,发现死在了idle.c的void rt_thread_idle_excute(void) 函数中,目前还在找bug,望大佬帮忙解答。感激不尽!
lwip1.4.1使用的时候,shell显示lwip1.4.1和tcp/ip初始化成功,list_if()显示link up,但是ping不通,也是板子直连笔记本,LED绿灯常亮黄灯闪烁,还没查lwip1.4.1的bug。
目前stm32f107这个bsp就发现这么些问题。
下面是dp83848的原理图
phy.png
朝雨绫萧
朝雨绫萧 2018-05-13
    本帖最后由 朝雨绫萧 于 2018-5-15 19:32 编辑


lwip都是 2.0.2
rt1052EVK and rt1052fire
evk bsp 直接能用,不需要移植
野火的 1052 没有网络驱动,已经移植好 evk 的网络驱动,静态或是 dhcp 都可以获取到 ip,能 ping 通。
但是显示时间第一次ping时间是5ms,第二到四次是2ms,evk测试都是小于1ms,原因未明
用iperf测试,野火的是4090 Kbits/sec ,evk的是94372 Kbits/sec ,不知道为啥性能差这么多
找到问题了,在驱动里关闭串口打印就好了


stm32f429armfly
bsp 有驱动,link_up 指示有问题,已经修复
但是 429 总是获取不到 ip
dhcp 经过打印,显示 dhcp 已经发送 udp 包了,总是收不到回应,dhcp time_out.
静态 ip,无法在路由器设备列表上找到板子,ping 板子,打印信息显示有收到数据,长度 60,发送数据,长度 42,电脑显示 来自 192.168.31.205 的回复: 无法访问目标主机。

phy 的初始化正常。寄存器地址等都已经照着手册对过了,没有问题,且能正常读出寄存器的值。
yufangxi
yufangxi 2018-05-14
1、stm32f407 探索者
2、lwip2.0.2+ IAR
3、问题描述:
1. 网络调试助手,在已连接状态下,再次点击连接,底座就会重复打印debug信息,必须复位重启。
send error ,close the socket.
I got a connection from(192.168,21,100,61505)
解决:暂未(尝试把ret < 0 bytes_received 以上两个条件的colse条件关掉。)
2. 无法获取静态IP的问题,我首先是按照教程添加set_if("e0", "192.168.21.30", "192.168.21.1", "255.255.255.0");
然后我把DHCP使能关掉后就可以获取ENV设置的静态IP了。
whj467467222
whj467467222 2018-05-14
    本帖最后由 whj467467222 于 2018-5-14 15:51 编辑


1、stm32f407 探索者
2、lwip2.0.2+ MDK
3、问题描述
可以PING通,在进行TCPclient试验的时候
if (connect(sock, (struct sockaddr *)&server_addr, sizeof(struct sockaddr)) == -1)
{
/* 连接失败 */
rt_kprintf("Connect fail!\n");
closesocket(sock);

/*释放接收缓冲 */
rt_free(recv_data);
return;
}

每次都会进入这个地方,tcpclient("192.168.1.11", 5000); 在网络调试助手选择的是TCP服务器,本地地址192.168.1.11,端口5000。UDP测试是可以收发数据的
whj467467222
whj467467222 2018-05-14
whj467467222 发表于 2018-5-14 11:52
1、stm32f407 探索者
2、lwip2.0.2+ MDK
3、问题描述


已解决,在LWIP初始化以后加个延时就好了,最好是做一个状态为判断
风来吴山
风来吴山 2018-05-16
风来吴山 发表于 2018-5-13 21:33
1、stm32f107
2、lwip2.0.2/lwip1.4.1
3、lwip2.0.2


已解决,在eth——函数eth_init中,加入PHYAddress,并且在eth中开启checksum,即可ping通

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友