(原创作品,转载请说明出处:
http://blog.sina.com.cn/zhongwuq
)
在网上搜索了半天没有关于 lwip 移植的相关教程,有的都是些零零碎碎的东西,后来通过
自己的努力终于把 lwip 调通了,在此特地做成详细的教程,供大家参考,只要按着我教程
中描述的步骤走完,你也肯定会成功的!不要浮躁,静下心来,肯定能调出来的,大家还有
什么问题的话,可以在博客里面给我留言,我们一起讨论。
首先准备两个文件 一个是 ST 官网提供的 lwip1.3.1 的例程,解压出来的文件名是
“STM32F107_ETH_LwIP_V1.0.0”
http://www.st.com/internet/com/SOFTWARE_RESOURCES/SW_COMPONENT/FIRMWARE/an310
2.zip
第二个是去 lwip 官网下载 lwip1.4.0 协议栈,解压出来的文件名是“lwip‐1.4.0”
http://mirror.yongbok.net/nongnu/lwip/lwip‐1.4.0.zip
(以太网调试的时候 会用到一个 TCP&UDP 调试工具,是周立功出的,当然你也可以自己编
个上位机,在.NET 下调用 socket 也是很简单的)
移植的硬件平台是金牛开发板 STM32F107VC。
直接用官网下的 lwip1.3.1 的例程,是通不上的,得做一下改动:
第一步关闭 DHCP 功能,在 lwipopts.h 文件中第 108 行
#defineLWIP_DHCP1
改为
#defineLWIP_DHCP0
第二步 数据连接模式改为 MII,在 stm32f107.c 文件中第 30、31 行修改
//#define MII_MODE/* MII mode for STM3210C‐EVAL Board (MB784) (check
jumperssetting)*/
#defineRMII_MODE/*RMIImodeforSTM3210C‐EVALBoard(MB784)(checkjumpers
setting)*/
改为
#defineMII_MODE/*MIImodeforSTM3210C‐EVALBoard(MB784)(checkjumpers
setting)*/
//#define RMII_MODE/* RMII mode for STM3210C‐EVAL Board (MB784) (check
jumperssetting)*/
最后将你电脑上本地连接的 IP 地址和 netconf.c 文件中第 119 到 121 行的 IP 在同一网段就可
以了。
在调试工具中建立客户端连接 IP:192.168.0.8 端口号:23 然后点连接,如果连接成功的
话,在数据接收窗口可以看到“
Hello. What is your name?”,恭喜你已经修改成功了。^_^
接下来移植最新版本的 lwip1.4.0
首先打开已经解压的 lwip1.4.0 文件夹,可以看到有三个子文件夹,第一个是说明文档 doc,
第二个是我们需要使用的内核 src,第三个是 lwip 官方提供的测试程序。这里我们只用到了
src 中的内容。
下面我们开始移植啦!!!