ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
我们打开之前下载好的contrib-2.1.0文件夹,如图 2‑18所示。 ![](https://box.kancloud.cn/1518a0f0f40c01fd472ff9a30eea418a_610x250.png) 我们先讲解一下这个目录: (1)addons目录。LwIP中很多模块的实现,都是可以由用户干预的,比如校验和、TCP初始序列号。LwIP的内核代码,通过宏编译选项的设置,可以将内核中某些模块的实现方法配置成LwIP默认的方法,或者用户自定义的方法。用户自定义的方法通常需要用户在钩子函数中实现。在实际应用中,我们采用内核默认的方法就足够了,只有在非常特定的场合下,为了性能、资源开销等因素的考虑,我们可能会需要自己实现相关的模块,或者说编写相应的钩子函数。那么这时该怎么办呢?addons目录下的内容就为我们提供了参考。对于初学者,没必要关心这个目录。 (2)apps目录里实现了很多应用层协议。LwIP源码包中也有apps目录,但源码包中apps目录下的应用程序全部用RAW/Callback API实现,属于内核代码的一部分。而此apps目录里的应用程序可以是由三种API中的任何一种实现的。读者可以把它看成是内核源码所提供的应用程序的一个补充。 (3)examples目录里是一些LwIP的应用示例。在使用LwIP开发应用程序时会出现的典型问题,比如如何移植网卡、如何使用LwIP的API、如何使用源码中提供的应用程序,对于这些问题,这个目录为我们提供了参考。我们在后续的章节中,会使用这个目录中的例子来讲解LwIP的应用程序。 (4)ports目录里是一些移植文件,它可以帮助我们将LwIP移植到某个具体的操作系统中。目前这个目录所提供的移植文件,只支持FreeRTOS、UNIX、Win32。我们会在后续的章节中讲解如何移植LwIP。