你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

移植LWIP到STM32F207

[复制链接]
STMCU小助手 发布时间:2021-7-23 14:38
在上篇文章《LWIP初体验-修改ST官方demo》中我们已经在自己的开发板上实现了简单的TCPsever和TCPclient功能。验证完了硬件,接下来的工作就是优化代码,添加应用程序。
有些同学想学习一下,如果下载LWIP的代码,然后移植到自己的代码中,下面我们聊聊移植问题。
我们需要的基础工程是已经实现了10ms定时,led灯1s闪烁,实现了串口打印工程。还需要一份LWIP1.4.1的源码,需要STM32F2系列的以太网驱动。

IAR工程移植

首先是IAR工程的移植操作。
添加以太网驱动库,注意,以太网驱动库并不在标准外设库中,需要大家自行到网上或ST官网下载。
1.jpg
把以太网驱动库添加进工程
2.jpg

增加新库的头文件路径
3.jpg

将LWIP源码放入目录中,我的个人习惯放到了Third_Party文件夹中,属于第三方库,以后用到其他类似FATFS这样的第三方库,都会放入次文件夹内。
4.jpg

我们把stm32f2x7_eth_conf_template.h文件剪切到文件夹中,并重命名为stm32f2x7_eth_conf.h
5.png

修改文件名称
6.jpg

当然新加的头文件,要添加新的头文件路径。
7.jpg

注意:这个文件是只读文件,要把对勾去掉,不然的话在IDE中无法修改代码。
8.png

添加以太网RTL8201EL的驱动程序
我们首先拷贝官方历程驱动,这部分主要是硬件层的初始化,在《LWIP初体验-修改ST官方demo》中,我们已经修改完代码,直接拷贝过来就行。
9.png

放入对应的位置
10.jpg

然后把BSP硬件驱动添加进入工程
11.jpg

添加lwip源代码,直接按照LWIP源码目录结构添加即可,不用全部添加,按下图所示接口
12.jpg

添加API相关文件
13.jpg

添加Netif相关文件
14.jpg

添加IPV4相关文件
15.jpg

当然,还要添加头文件路径,这是必不可少的
16.jpg

添加中间文件
17.jpg

添加lwipopts.h
18.jpg

编译出错
19.jpg

这些文件主要是官方开发板的lcd相关文件,把他们屏蔽掉
20.jpg

再编译,出新的错误,再次屏蔽这些现实部分的代码。
21.jpg

修改之后,编译没有问题
22.jpg

复制驱动,直接使用官方demo的文件,
23.jpg

拷贝ethernetif.c文件
24.jpg

拷贝lwipopts.h文件。
25.jpg

把原来的文件删除掉
26.jpg

重新添加我们新添加的文件(注意解除只读属性)
修改文件
27.jpg

新建lwip_app.c和lwip_app.h文件
28.jpg

添加LwIP_Init函数接口。
29.jpg

增加LwIP_Pkt_Handle函数。
30.jpg

定义一下宏
31.jpg

包头文件包含一下
32.png

修改函数
33.jpg

修改主函数
34.jpg

使用PC端ping一下开发板的IP
35.jpg

移植成功,可以正常响应ping。
这只是个简单的移植,就是个流水账,想看具体修改内容的,可以到文章开头下载工程代码,对比修改前和修改后的区别。网络部分有很多知识,想深入了解,还需要自己多看看代码。


收藏 评论0 发布时间:2021-7-23 14:38

举报

0个回答

所属标签

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版