不过这个网站真的很逗http://savannah.nongnu.org/projects/lwip/,这个“nongnu”会激起多少程序员的遐想啊。

LWIP  总述_c



lwIP移植工作:


其实,LWIP不需要自己亲自移植,不同的厂商都有移植好的DEMO实例程序。如STM32:

1、从官方网站http://www.stmcu.org/document/list/index/category-523下载STSW-STM32070  面向STM32F4x7微控制器的LwIP TCP/IP协议栈的演示代码的软件包stsw-stm32070.zip。
2、将stsw-stm32070.zip解压得到STM32F4x7_ETH_LwIP_V1.1.0文件夹,这个就是相当全的功能集合。足够自己起步学习或直接做产品。

LWIP  总述_#define_02

1、与CPU和编译器的相关接口


cc.h 这个文件是没有的,你需要建立一个目录arch,然后在下面添加cc.h,这里里面主要是一些定义,包括数据类型;

perf .h  定义了性能测量使用的宏,由  LwIP  调用,可以将其定义为一个空的宏。


新建 cpu.h,

添加如下代码

#ifndef__CPU_H__ 

#define __CPU_H__ 

#define BYTE_ORDER LITTLE_ENDIAN  //小端模式

#endif /* __CPU_H__ */ 

虽然只有一行代码,但是确实必须的




2、与操作系统的接口

sys_arch.c、sys_arch.h为操作系统模拟层接口文件



opt.h首先看这个文件,这个文件里面包含了LWIP的模块选项,可以在这里选择哪些模块需要编译,那些模块不编译,分成几个部分,mem,arp,icmp,igmp,ppp,dhcp等,这里可以根据自己的需要修改编译选项,如果是带操作系统的,还要修改栈空间,优先级之类的选项。



一般重新定义个文件,如lwipopts.h,这也是官方demode实例有的。






3、修改网卡底层驱动代码



这个官方的demo上可以参考修改,另外配套使用的开发包也是有对应的驱动文件(stm32f4x7_eth_bsp.c)。



主要是配置修改管脚。