说在前面
由于工作原因,从接触LWIP开始就是用的 CubeMX+HAL库。每次用起来都很方便,但也出现了一个问题:当没有CubeMX时就不知到该如何实现LWIP,于是有了这个突然的想法:学习LWIP标准库移植,在学习LWIP移植的同时还能学一下标准库的使用(其实就是找不到HAL库移植的教程和资料)。
注:本次的测试平台是 STM32F207 + DP83848
一、STM32标准库LWIP例程源码下载:
进入ST官网,首先点击放大镜图案,之后点击产品后的小三角形弹出类别选择框,选择类别为“工具与软件”,最后在搜索框里输入“LWIP”后回车
输入回车后会进入以下页面,找到F2的LWIP演示例程后下载(下载时需要登录ST账号,没有的自行注册一个吧),如下图所示:
二、LWIP移植
解压以后可以看到里面有“_htmresc”、“Libraries”、“Project”、“Utilities”这4个文件夹和“Release_Notes.html”这个文件。接下来开始进入移植工作,我们就以裸机实现tcp_echo_client这个例程为例进行移植,步骤如下:
1、新建一个文件夹,命名为“tcp_echo_client”,里面分别新建“Libraries”、“MDK-ARM”、“USER”这3个文件夹。
2、将例程源码中“Libraries”文件夹复制到“tcp_echo_client”根目录,之后再对复制过来的“Libraries”中的“CMSIS”文件夹进行处理:
a.将“CMSIS -> CM3 -> CoreSupport”里面的两个文件剪切到“CMSIS”根目录;
b.将“CMSIS -> CM3 -> DeviceSupport -> ST -> STM32F2xx -> startup -> arm”里面的“startup_stm32f2xx.s”文件剪切到“tcp_echo_client”里的“MDK-ARM”中;
c.将“CMSIS -> CM3 -> DeviceSupport -> ST -> STM32F2xx”里面的1个C文件和2个H文件剪切到“CMSIS”根目录;
d.删除“CMSIS”根目录中除了刚才剪切出来的5个文件其余文件/文件夹。
3、将例程源码中“Utilities -> Third_Party”的“lwip_v1.3.2”文件夹复制到“tcp_echo_client”的根目录。
4、将例程源码中“Project -> Standalone -> tcp_ec