Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
Network
STM32F107 + DP83848 + LwIP (rt-thread-v2.1.0) 网络不通
发布于 2016-06-22 10:11:35 浏览:5167
订阅该版
论坛各位同行: 本人使用 STM32F107 + DP83848 + LwIP 在做产品研发。之前使用的操作系统是ucos-ii,协议栈为lwip 1.3.1。移植完成后进行UDP数据收发测试,发现最多几十分钟,不到1h就会出现数据不能收发的问题。不启用协议栈,单独跑ucos测试程序可以跑一个晚上。基本可以确定是协议栈不稳定的问题导致的。通过其他论坛了解到RTT,得知RTT集成了LwIP,并作了优化,甚至还集成了后续我们要使用的MQTT client,于是果断转入RTT的怀抱。 目前的程序是基于 rt-thread-2.1.0\bsp\stm32f10x 修改的。为什么不基于 rt-thread-2.1.0\bsp\stm32f107?因为stm32f10x带了LED例程,可以快速验证。目前的想法是快速调通串口、网口,然后测试稳定性,如果满足我们的要求就继续做业务功能的开发。 刚开始接触RTT,很多地方还不熟悉。但昨天还是很快把LED和finsh搞定了,仅仅修改了LED的pin脚。对于网络功能,调了一个下午也没调通。主要还是自己对LwIP底层移植这块还不熟悉,同时RTT的源码和网上很多参考资料不一样,比如网卡驱动那块low_level_init()之类的函数都没找到。 目前针对网络这块,我已经做了如下工作: 1. 在 rt-thread-2.1.0\bsp\stm32f10x 中添加LwIP(1.4.1),把 rt-thread-2.1.0\bsp\stm32f107\drivers\stm32_eth.c 和 rt-thread-2.1.0\bsp\stm32f107\drivers\stm32_eth.h 拷贝到 rt-thread-2.1.0\bsp\stm32f10x\drivers 目录,并在工程属性中把Device修改为STM32F107VC; 2. rtconfig.h 中取消 #define RT_USING_LWIP 注释(此时测试编译会出错,提示 stm32f10x_it.c EXTI4_IRQHandler(void) 函数中找不到 rt_dm9000_isr(void) 的定义,于是把那部分代码屏蔽掉); 3. 在 board.c 中 rt_console_set_device(RT_CONSOLE_DEVICE_NAME); 后面添加 rt_hw_stm32_eth_init(); 4. 参照 rt-thread-2.1.0\bsp\stm32f107,在 startup_stm32f10x_hd.s 中添加 ETH_IRQHandler、ETH_WKUP_IRQHandler 相应的声明; 5. 对照原来ucos+lwip的源码,对比 stm32_eth.c 中 GPIO、NVIC、RCC 等配置,并修改成一致的。 6. 在 application.c 添加UDP server的代码(直接把 rt-thread-2.1.0\examples\test
et_test.c 中相应的源码拷贝过来) 目前自带的LED线程可以正常工作,finsh shell也没问题。网口的状态是绿灯常亮,黄灯闪烁,ping不通。finsh启动输出如下: alloc netif failed \ | / - RT - Thread Operating System / | \ 2.1.0 build Jun 21 2016 2006 - 2016 Copyright by rt-thread team lwIP-1.4.1 initialized! list_if()返回结果如下: finsh>>list_if() dns server #0: 208.67.222.222 dns server #1: 0.0.0.0 0, 0x00000000 finsh>> 本人在STM32、LwIP这块是新手,请各位指点,我还有哪些步骤没有做好。谢谢!
查看更多
8
个回答
默认排序
按发布时间排序
xb_ma
2016-06-22
这家伙很懒,什么也没写!
自己顶一下
aozima
2016-06-22
调网络不抓包,调I2C等时序不上逻辑分析仪,就像电工不用万用表!多用整理的好的文字,比截图更省流量,还能在整理过程中思考。
重点检查 >alloc netif failed --- >为什么不基于 rt-thread-2.1.0spstm32f107?因为stm32f10x带了LED例程,可以快速验证 --- 只能呵呵了 [s:193] 改LED还是改以太网哪个简单? 首页的手册先读下,有个基本概念。 以前只有10x,就是因为一堆人没能成功添加网络,才复制粘贴了一个直接可以跑通网络的107
xb_ma
2016-06-22
这家伙很懒,什么也没写!
感谢 aozima 的回复。 >为什么不基于 rt-thread-2.1.0spstm32f107? --- 其实还有两个原因没说: 1. rt-thread-2.1.0spstm32f107 编译提示少了serial.c、serial.h,于是从 rt-thread-v1.2.5 同一目录下把对应的文件拷贝过来,之后编译没有问题了。 2. 接着把 rt-thread-2.1.0spstm32f10x 的LED驱动 led.c、led.h 拷贝过来,再把 application.c 拷贝过来覆盖。完成上述操作后编译下载,LED不闪,串口也没有输出,所以才转到 rt-thread-2.1.0spstm32f10x 下去折腾的。
xb_ma
2016-06-22
这家伙很懒,什么也没写!
既然 aozima 这么说的话,我还是继续折腾 rt-thread-2.1.0\bsp\stm32f107 吧。
xb_ma
2016-06-22
这家伙很懒,什么也没写!
现在启动输出如下: \ | / - RT - Thread Operating System / | \ 2.1.0 build Jun 22 2016 2006 - 2016 Copyright by rt-thread team lwIP-1.4.1 initialized! lwIP-1.4.1 initialized! TCP/IP initialized! 不知道为什么 lwIP-1.4.1 initialized! 会输出2次。另外,已经确定 application.c 中如果执行 eth_system_device_init() 的话LED任务、finsh shell任务都不能正常执行。如果把这句注释掉,其他任务就能正常运行。
aozima
2016-06-22
调网络不抓包,调I2C等时序不上逻辑分析仪,就像电工不用万用表!多用整理的好的文字,比截图更省流量,还能在整理过程中思考。
建议使用JTAG调试一下。
whj467467222
认证专家
2018-02-09
开源,分享,交流,共同进步
楼主您好,我现在还PING不通,我发的帖子您有空能帮我看看嘛?[https://www.rt-thread.org/qa/thread-5786-1-1.html](https://www.rt-thread.org/qa/thread-5786-1-1.html)
撰写答案
登录
注册新账号
关注者
0
被浏览
5.2k
关于作者
xb_ma
这家伙很懒,什么也没写!
提问
1
回答
4
被采纳
0
关注TA
发私信
相关问题
1
lwip1.4.1连接经常会断开无法连接上,可以ping通
2
LPC1768:RTT+LWIP+webserver用IE刷网页出现硬件中断错误(已经解决)
3
求一些LWIP开发的经验,目前ping一直不稳定。
4
stm32f207+dp83848无法ping通
5
RTT下的LWIP传递机制
6
rtt内lwip的socket是否是线程安全?
7
Lwip+enc28j60无法ping通
8
坑爹的rtconfig.h lwip关掉了checksum
9
花了一个晚上,把RT2.0的LWIP、网卡驱动、文件系统整合起来了,发现一点小问题
10
lwip例程中udp发送时如何指定源端口发送到指定目的地端口
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
在RT-Thread Studio中构建前执行python命令
2
研究一了一段时间RTT,直接标准版上手太难,想用nano,但又舍不得组件
3
CherryUSB开发笔记(一):FSDEV USB IP核的 HID Remote WakeUp (USB HID 远程唤醒) 2025-01-18 V1.1
4
RT-thread 缩写字典
5
RT Thread 源码分析笔记 :线程和调度器
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
Bootloader
AT
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
I2C_IIC
ESP8266
UART
WIZnet_W5500
ota在线升级
PWM
cubemx
flash
freemodbus
BSP
packages_软件包
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
编译报错
中断
Debug
rt_mq_消息队列_msg_queue
SFUD
msh
keil_MDK
ulog
MicroPython
C++_cpp
本月问答贡献
出出啊
1517
个答案
342
次被采纳
小小李sunny
1444
个答案
290
次被采纳
张世争
813
个答案
177
次被采纳
crystal266
547
个答案
161
次被采纳
whj467467222
1222
个答案
149
次被采纳
本月文章贡献
聚散无由
2
篇文章
14
次点赞
catcatbing
2
篇文章
4
次点赞
Wade
2
篇文章
2
次点赞
Ghost_Girls
1
篇文章
5
次点赞
xiaorui
1
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部