STM32移植LWIP

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

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

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

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

添加以太网驱动库


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


将LWIP源码放入目录中


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



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


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


添加以太网RTL8201EL的驱动程序

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



然后把驱动添加进入工程


添加lwip源代码



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


添加中间文件


添加lwipopts.h


编译出错


把他们屏蔽掉


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


修改之后,没有问题


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




把原来的文件删除掉


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

修改文件


新建lwip_app.c和lwip_app.h文件




定义一下宏


包头文件包含一下


修改函数


修改主函数


实验


移植成功


修改Keil工程

添加文件


添加头文件路径


有1个错误


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

编译下载,发现ping会死机

修改代码优化等级就好了


测试成功


   

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

猜你喜欢

转载自blog.csdn.net/Firefly_cjd/article/details/79805977