系列文章目录
第一章 lwIP官 介绍
文章目录
- 系列文章目录
- 一、 前言
- 二、主页简介
- 三、子 页Project Homepage
- 四、子 页Download Area
-
- 1. 页说明
- 2.lwip-x.x.x.zip
- 3.contrib包
- 4.sig文件
- 五、lwIP源码
-
- 1.lwip-2.1.3目录
-
- 1)文件
- 2)文件夹
- 2.src目录
- 3.core目录
- 4.contrib文件夹
- 六、总结
- 七、参考资料
一、 前言
二、主页简介
lwIP的代码已经交由Savannah托管,项目主页即lwIP官
地址:
http://savannah.nongnu.org/projects/lwip/
1.lwip-2.1.3目录
(1)api文件夹里面装的是NETCONN API和Socket API相关的源文件,只有在操作系统的环境中,才能被编译。
(2)apps文件夹里面装的是应用程序的源文件,包括常见的应用程序,如httpd、mqtt、tftp、sntp、snmp等。
(3)core文件夹里面是LwIP的内核源文件。
(4)include文件夹中是LwIP所有模块对应的头文件。
(5)netif文件夹中是与 卡移植有关的文件,这些文件为移植 卡提供了模板,可以直接使用。
LwIP内核是由一系列模块组合而成的,这些模块包括:TCP/IP协议栈的各种协议、内存管理模块、数据包管理模块、 卡管理模块、 卡接口模块、基础功能类模块、API模块。每个模块是由相关的几个源文件和头文件组成的,通过头文件对外声明一些函数、宏、数据类型,使得其他模块可以方便地调用此模块的功能。构成每个模块的头文件都被组织在了include目录中,源文件则根据类型被分散地组织在api、apps、core、netif目录中。
3.core目录
(1) addons 目录。 LwIP 中很多模块的实现,都是可以由用户干预的,比如校验和、 TCP 初始序列 。 LwIP 的内核代码,通过宏编译选项的设置,可以将内核中某些模块的实现方法配置成 LwIP默认的方法,或者用户自定义的方法。用户自定义的方法通常需要用户在钩子函数中实现。在实际应用中,我们采用内核默认的方法就足够了,只有在非常特定的场合下,为了性能、资源开销等因素的考虑,我们可能会需要自己实现相关的模块,或者说编写相应的钩子函数。
(2) apps 目录里实现了很多应用层协议。 LwIP 源码包中也有 apps 目录,但源码包中 apps 目录下的应用程序全部用 RAW/Callback API 实现,属于内核代码的一部分。而此 apps 目录里的应用程序可以是由三种 API 中的任何一种实现的。读者可以把它看成是内核源码所提供的应用程序的一个补充。
(3) examples 目录里是一些 LwIP 的应用示例。在使用 LwIP 开发应用程序时会出现的典型问题,比如如何移植 卡、如何使用 LwIP 的 API、如何使用源码中提供的应用程序,对于这些问题,这个目录为我们提供了参考。我们在后续的章节中,会使用这个目录中的例子来讲解 LwIP 的应用程序。
(4) ports 目录里是一些移植文件,它可以帮助我们将 LwIP 移植到某个具体的操作系统中。目前这个目录所提供的移植文件,支持 RTOS、 UNIX、 Win32。
六、总结
七、参考资料
文章知识点与官方知识档案匹配,可进一步学习相关知识 络技能树首页概览22081 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!