bj8310 发表于 2016-9-18 10:48:55

一个freeRTOS+LWIP在STM32F407上的移植例子

      大家好,都知道相对ucos,freeRTOS是个免费软件,也是目前同类产品市场占有率最高的,可以光明正大的不花钱使用,因此花点心思研究一下使用是值得的。

   可惜这里目前还没有提供freeRTOS与LWIP结合的学习资料,那我们只好自己摸索尝试了。
   本帖子是一个在MDK环境下移植后的freeRTOS和LWIP的工程压缩包(在帖子最后),用于和大家共同探讨移植问题,压缩包解压后,在路径STemWin5.22+FreeRTOS+Fatfs-LWIP\Project\MDK-ARM(uV4)下点击Template.uvproj打开(不要打开IAR那个文件夹)。文件文件夹中有1.4.1和1.3.2两个版本的LWIP,工程中使用的是后者。
   工程中用到的开发板上资源为:MCU是STM32F407ZET6,PHY芯片DP83848VV,以及连接在PE4引脚上的闪烁LED代表操作系统没挂掉。在安福莱板子上运行时请根据实际情况改改PHY驱动、LED驱动引脚、MCU型号等。
   好了,下面附几张运行的截图附带引出问题供大家研究探讨:   
   1ping 192.168.1.30成功了
      2开发板作为TCP客户端,运行基于socket的TCPecho例程,电脑作为服务器,连接成功,串口助手显示socket connect result (连接失败时显示socket connect result [-1])
      3服务器短以较短的时间间隔向开发板发内容,就是网络调试助手的默认字符“http://www.cmsoft.cn QQ:10865600”,这时很快,开发板就不行了,协议栈不再有反应,ping不通了,不过操作系统似乎还健在,因为由一个任务控制的LED还在顽强闪烁!网络调试助手中的发送间隔越小,问题出现速度越快。
      4接上条,协议栈有时不行了的现象表现为TCPecho例程失效,同时ping的延时大大增加,会超时。此时如果在下图中网络助手的界面下连续点击“连接”按钮,ping也能ping通,只是延时很大。
      5附带一个问题:我在程序中将串口波特率初始化为115200,怎么最后在串口助手上非要设定在38400这个波特率上才能正常收到文字?
      好了,这些问题摆在这里,帖子最后附上工程代码压缩包,供感兴趣的朋友们下载修改研究。帖子篇幅不多,但也是我花了近一小时编写的,如果问题排除了,大家不要忘了在这里回帖说说方法和总结,共同学习。源码中东拼西凑比较乱,见笑了。   
      对了,工程中的STemwin和FATFS部分暂时没有试过,在main函数中初始化的相关函数注释掉了,不参与例程运行。感兴趣要自己调试哦。

bj8310 发表于 2016-9-18 11:06:31

补充一下,朱升林(LWIP那些事的作者老衲五木)曾说ping延时逐渐加大似乎是因为网卡缓冲区内的数据包没有及时都取走(http://blog.sina.com.cn/s/blog_62a85b950102vsdt.html),还有帖子说是因为ethernetif.c里面的ethernetif_input没有处理好,到底怎么回事,就等高人出研究成果了。

bj8310 发表于 2016-9-18 23:41:57

打开工程时会弹出好几个提示框提示文件中包含有错误路径,这个可先不管,一直点击确定即可。打开后自己重新编译一下。没有错误提示,不过有好多个警告,请海涵!

darkness 发表于 2016-9-20 23:09:47

哈,感谢分享。

bj8310 发表于 2016-9-21 17:26:44

没人给出实验后的分析结论么?鼓励大家下载后反复调试研究,这么好的帖子居然人气也不行,今天自己顶一下。

bj8310 发表于 2016-9-28 22:44:52

几天没来,我的帖子沉到湖底了 。串口问题今天抽空看了一下,是因为时钟配置不对,请大家根据自己的板子晶振正确配置一下。

hpdell 发表于 2016-10-1 21:52:28

不错不错啊,学习中

zerone 发表于 2017-7-31 09:43:16

问题解决了吗

uboat 发表于 2017-8-7 20:30:49

好贴啊,问题解决了没?

cddxcdx 发表于 2017-10-26 17:04:25

xxc21cn 发表于 2017-10-31 10:56:12

谢谢楼主提供的资源!!

MrRS 发表于 2018-5-7 13:50:21

谢谢楼主分享

菜鸡的成长之路 发表于 2020-3-16 15:56:33

我碰到了一样的问题,还没解决

jinniuxing 发表于 2020-5-24 09:56:05

谢谢楼主分享
页: [1]
查看完整版本: 一个freeRTOS+LWIP在STM32F407上的移植例子