3.0 KiB
lwip 移植说明
为了适配 RT-Thread 网卡设备,RT-Thread 团队基于原 lwip 进行了一些修改,本文档记录了相关修改内容。
本 lwip-2.1.2 版本基于 lwip STABLE-2_1_2_RELEASE 版本移植而来。
Date | Author | Notes |
---|---|---|
2019-09-02 | MurphyZhao | 增加 lwip 2.1.2 移植说明 |
2020-06-18 | xiangxistu | 增加部分 lwIP 2.1.2 移植说明 |
修改内容
src/api
src/api/sockets.c
增加lwip_tryget_socket
函数,作为tryget_socket
函数的全局实现src/api/sockets.c
在alloc_socket
函数中,增加 SAL 移植函数rt_wqueue_init
#ifdef SAL_USING_POSIX
rt_wqueue_init(&sockets[i].wait_head);
#endif
src/app
- 增加
ping/ping.c
,便于在 finsh/msh 中使用 ping 功能 - 增加
tftp/tftp_port.c
,便于在 finsh/msh 中使用 tftp_server 功能
src/arch
增加 src/arch
目录,存储对接 RT-Thread 设备框架的移植文件,从 lwip-2.0.2 版本中的移植文件修改而来。
以及相对于 lwIP2.0.2 的增加修改内容:
-
在
src/arch/sys_arch.c
中增加 MTU 与 etharp_output 的初始化 -
在
src/arch/sys_arch.c
中增加新添加的邮箱函数对邮箱机制的新增加的 sys_mbox_trypost_fromisr 函数予以实现
-
在
src/arch/sys_arch.c
中增加新添加的内存堆函数对内存堆的新增加的 mem_overflow_check_raw 与 mem_overflow_init_raw 函数予以实现
-
在
src/arch/cc.h
中增加对 lwIP 使用的标准错误代码宏的处理,不再使用 lwIP 内置的错误宏
src/core
- 在
src/core/dns.c
的dns_setserver
函数中增加 RT-Thread netdev 相关的移植 - 在
src/core/netif.c
中增加 RT-Thread netdev 相关的移植
src/include
-
在
src/include/lwip/priv/sockets_priv.h
中增加 SAL 相关的移植在
lwip_sock
结构体中增加rt_wqueue_t wait_head;
成员 -
在
src/include/lwip/prot/ieee.h
中增加 EAPOL, EAP over LAN 标识 -
在
src/include/lwip/init.h
中的版本号后增加U
标识 -
在
src/include/lwip/sockets.h
中增加LWIP_SOCKET_SELECT
,解决开启 RT_USING_POSIX 时的冲突 -
在
src/include/lwip/arch.h
中修改<unistd.h>
为"sys/types.h"
,解决编译冲突并添加 typedef int ssize_t 定义,补足因 libc 与 dfs 未开启时 ssize_t 的定义不足问题
-
在
src/include/netif/
中增加ethernetif.h
,用于对接 RT-Thread 网卡设备
src/netif
- 在
src/netif/
中增加ethernetif.c
,用于对接 RT-Thread 网卡设备 - 在
src/netif/lowpan6.c
中增加LWIP_6LOWPAN
宏定义,以防止编译错误
src
- 在 src 目录下,增加
src/lwipopts.h
,用于 lwip 功能裁剪以及配置设置 - 在 src 目录下,增加
src/lwippools.h
,用于定义LWIP_MALLOC_MEMPOOL
其它
- 增加 SConscript 文件,用于 scons 构建
- 增加 README_RT-THREAD.md 文件,用于记录相对原 lwip 源码的改动