STM32移植LWIP

本文使用的是STM32F207VCT6平台,MII接口的RTL8201EL网络芯片,LWIP版本是1.4.1

基础工程是:已经实现了10ms定时,led灯1s闪烁,还有串口打印

欢迎查看本文所在的系列,STM32的LWIP应用,点击跳转

本文使用的IDE是IAR7.2,考虑到很多很使用Keil,本文末尾也有keil版本的说明

添加以太网驱动库

STM32移植LWIP_第1张图片


添加进工程,增加新库的头文件路径

STM32移植LWIP_第2张图片

将LWIP源码放入目录中

STM32移植LWIP_第3张图片

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

STM32移植LWIP_第4张图片

STM32移植LWIP_第5张图片

当然新加的头文件,要添加新的头文件路径

STM32移植LWIP_第6张图片

注意:这个文件是只读文件,要把对勾去掉

STM32移植LWIP_第7张图片

添加以太网RTL8201EL的驱动程序

我们首先拷贝官方历程驱动(PS:修改过的)


STM32移植LWIP_第8张图片

然后把驱动添加进入工程

STM32移植LWIP_第9张图片

添加lwip源代码

STM32移植LWIP_第10张图片STM32移植LWIP_第11张图片

STM32移植LWIP_第12张图片

当然,还要添加头文件路径

STM32移植LWIP_第13张图片

添加中间文件

STM32移植LWIP_第14张图片

添加lwipopts.h

STM32移植LWIP_第15张图片

编译出错

STM32移植LWIP_第16张图片

把他们屏蔽掉


再编译,出新的错误,再次屏蔽

STM32移植LWIP_第17张图片

修改之后,没有问题


复制驱动,直接使用官方demo

STM32移植LWIP_第18张图片

STM32移植LWIP_第19张图片

STM32移植LWIP_第20张图片

把原来的文件删除掉


重新添加我们新添加的文件(解除只读属性)

修改文件

STM32移植LWIP_第21张图片

新建lwip_app.c和lwip_app.h文件

STM32移植LWIP_第22张图片

STM32移植LWIP_第23张图片

STM32移植LWIP_第24张图片

定义一下宏

STM32移植LWIP_第25张图片

包头文件包含一下

STM32移植LWIP_第26张图片

修改函数

STM32移植LWIP_第27张图片

修改主函数

STM32移植LWIP_第28张图片

实验

STM32移植LWIP_第29张图片

移植成功


修改Keil工程

添加文件

STM32移植LWIP_第30张图片

添加头文件路径

STM32移植LWIP_第31张图片

有1个错误

STM32移植LWIP_第32张图片

#if defined   (__CC_ARM) /*!< ARM Compiler */
u32_t sys_now(void){}
#endif

编译下载,发现ping会死机

修改代码优化等级就好了

STM32移植LWIP_第33张图片

测试成功

STM32移植LWIP_第34张图片

   

如果看文字版太枯燥,可以点击看视频版:点击跳转

你可能感兴趣的:(网络LWIP,STM32移植lwip)