LwIP是一个轻型IP协议,有无操作系统的支持都可以运行。这里的移植是无操作系统移植。
LwIP虽然是一个轻型的IP协议,但是TCP/IP基本功能都有。而且占用的资源不多,非常适合用于嵌入式系统。
移植的平台:STM32F103VE+MDK 4.7+ LWIP-1.4.1
下载LwIP-1.4.1源码以及contrib-1.4.1_官网地址:http://download.savannah.gnu.org/releases/lwip/
下载ST官方LWIP参考实例下载地址:http://www.st.com/web/en/catalog/tools/FM147/CL1794/SC961/SS1743/PF257862?s_searchtype=keyword
我的移植实例+LwIP-1.4.1+contrib-1.4.1_+ST官方lwIP移植实例+串口网络调试助手:http://download.csdn.net/detail/mcu_tian/9265095
1:移植工程描述
将Lwip-1.4.1移植到野火stm32开发板上,无操作系统,轮询网络接口,使用TCP接口对数据进行收发。将stm32与PC通过路由器连接在一个局域网内进行通信测试。
2:在进行移植之前必须知道LwIP源码的框架结构
LwIP-1.4.1包含了协议栈的核心源码。
其目录结构如下:
在 src 目录下的 api 文件夹保存的文件中,包含了适用于具有操作系统平台调用的应用
层接口函数。core文件夹下的文件内容为
LwIP 协议栈对于各种协议的实现。netif下的文
件则保存了与硬件底层关系比较紧密的函数。这三个文件夹下的都是c
源文件,它们的头
文件都被保存到 include 文件夹中。在实际应用中,可根据需要进行裁剪(前期移植不管了,就将这些源码全部添加到工程中)。
3:工程文件准备
A:将LwIP-1.4.1的src文件夹的所有文件和文件夹复制到自己的工程中。
B:将contrib-1.4.1_ 目录contrib-1.4.1_contribports old6502includearch的 cc.h、perf.h 和 sys_arch.h 这三个文件复制到Lwip文件夹中的自己创建的arch文件夹中。其中 cc.h 包含了 LwIP 对于基本数据类型的定义。sys_arch.h 定义了与系统
有关的信号量、邮箱及线程。
C:ST库文件。将版本3.5版本固件库复制到stmlib工程文件下。
D:串口和systicks的bsp文件复制到bsp文件夹。
E:将以太网模块驱动enc28j60文件夹复制到工程app文件夹下(这里用的是野火的模块以及程序)
F:将st工程模板中的project文件夹中src文件夹中的netconf.c和 inc文件夹的netconf.h复制到工程user文件夹中
G:将stm32f10x_conf.h,stm32f10x_it.h,stm