lwip宏

lwip宏定义

  1. TCPIP_THREAD_PRIO: 定义了lwIP协议栈中的TCP/IP线程的优先级。可以根据系统需求进行调整。例如,如果系统中有其他高优先级任务,可以将该值设置为较低的优先级,以确保系统的稳定性。

  2. DEFAULT_THREAD_PRIO: 定义了默认线程的优先级。同样,可以根据系统需求进行调整。

  3. SYS_LIGHTWEIGHT_PROT: 定义了系统是否启用轻量级保护机制。如果启用,将使用更轻量级的保护机制来保护共享资源,以提高系统性能。

  4. NO_SYS: 定义了是否禁用操作系统功能。如果设置为1,将禁用操作系统功能,lwIP将在裸机环境下运行。

  5. MEM_ALIGNMENT: 定义了内存对齐方式。可以根据硬件平台的要求进行调整。

  6. MEM_SIZE: 定义了lwIP协议栈使用的内存大小。可以根据系统需求进行调整。例如,如果系统内存较小,可以减小该值以节省内存空间。

  7. MEMP_NUM_PBUF: 定义了可用的pbuf(数据包缓冲区)数量。可以根据系统的网络负载进行调整。例如,如果系统需要处理大量的网络数据包,可以增加该值以提高性能。

  8. MEMP_NUM_UDP_PCB: 定义了可用的UDP协议控制块(PCB)数量。可以根据系统的UDP连接数进行调整。

  9. MEMP_NUM_TCP_PCB: 定义了可用的TCP协议控制块(PCB)数量。可以根据系统的TCP连接数进行调整。

  10. MEMP_NUM_TCP_PCB_LISTEN: 定义了可用的TCP监听协议控制块(PCB)数量。可以根据系统的TCP监听连接数进行调整。

  11. MEMP_NUM_TCP_SEG: 定义了可用的TCP分段数量。可以根据系统的TCP连接数和数据传输需求进行调整。

  12. MEMP_NUM_SYS_TIMEOUT: 定义了可用的系统超时数量。可以根据系统的需求进行调整。

  13. MEMP_NUM_NETCONN: 定义了可用的网络连接数量。可以根据系统的网络连接需求进行调整。

  14. PBUF_POOL_SIZE: 定义了pbuf(数据包缓冲区)池的大小。可以根据系统的网络负载进行调整。

  15. PBUF_POOL_BUFSIZE: 定义了pbuf(数据包缓冲区)的大小。可以根据系统的网络负载和数据包大小进行调整。

  16. LWIP_SUPPORT_CUSTOM_PBUF: 定义了是否支持自定义pbuf(数据包缓冲区)。如果设置为1,可以使用自定义的pbuf实现,以满足特定的需求。

  17. LWIP_TCP: 定义了是否启用TCP协议。如果设置为1,将启用TCP协议。

  18. TCP_TTL: 定义了TCP数据包的生存时间(TTL)。

  19. TCP_QUEUE_OOSEQ: 定义了是否启用TCP乱序队列。如果设置为1,将启用TCP乱序队列。

  20. TCPIP_MBOX_SIZE: 定义了TCP/IP线程的邮箱大小。可以根据系统的需求进行调整。

  21. DEFAULT_TCP_RECVMBOX_SIZE: 定义了TCP接收邮箱的大小。可以根据系统的需求进行调整。

  22. DEFAULT_ACCEPTMBOX_SIZE: 定义了TCP连接接受邮箱的大小。可以根据系统的需求进行调整。

  23. TCP_MSS: 定义了TCP最大段大小(Maximum Segment Size)。可以根据网络环境和带宽进行调整。

  24. TCP_SND_BUF: 定义了TCP发送缓冲区的大小。可以根据系统的需求和网络带宽进行调整。

  25. TCP_SND_QUEUELEN: 定义了TCP发送队列的长度。可以根据系统的需求和网络带宽进行调整。

  26. TCP_WND: 定义了TCP窗口大小。可以根据网络环境和带宽进行调整。

  27. LWIP_ICMP: 定义了是否启用ICMP协议。如果设置为1,将启用ICMP协议。

  28. LWIP_DHCP: 定义了是否启用DHCP协议。如果设置为1,将启用DHCP协议。

  29. LWIP_UDP: 定义了是否启用UDP协议。如果设置为1,将启用UDP协议。

  30. UDP_TTL: 定义了UDP数据包的生存时间(TTL)。

  31. LWIP_STATS: 定义了是否启用lwIP统计功能。如果设置为1,将启用lwIP的统计功能。

  32. LWIP_PROVIDE_ERRNO: 定义了是否提供errno变量。如果设置为1,将提供errno变量。

  33. CHECKSUM_BY_HARDWARE: 定义了是否使用硬件加速计算校验和。如果定义了该宏,将使用硬件加速计算校验和。

  34. CHECKSUM_GEN_IP, CHECKSUM_GEN_UDP, CHECKSUM_GEN_TCP, CHECKSUM_CHECK_IP, CHECKSUM_CHECK_UDP, CHECKSUM_CHECK_TCP, CHECKSUM_GEN_ICMP: 这些宏定义了是否生成和检查IP、UDP、TCP和ICMP数据包的校验和。根据系统的硬件和性能需求进行调整。

  35. LWIP_NETCONN: 定义了是否启用lwIP的netconn API。如果设置为1,将启用lwIP的netconn API。

  36. LWIP_SOCKET: 定义了是否启用lwIP的socket API。如果设置为1,将启用lwIP的socket API。

  37. LWIP_COMPAT_MUTEX: 定义了是否启用lwIP的互斥锁兼容模式。如果设置为1,将启用lwIP的互斥锁兼容模式。

  38. LWIP_SO_RCVTIMEO: 定义了是否启用lwIP的接收超时功能。如果设置为1,将启用lwIP的接收超时功能。

  39. TCPIP_THREAD_STACKSIZE: 定义了TCP/IP线程的堆栈大小。可以根据系统的需求进行调整。

  40. DEFAULT_UDP_RECVMBOX_SIZE: 定义了UDP接收邮箱的大小。可以根据系统的需求进行调整。

  41. DEFAULT_THREAD_STACKSIZE: 定义了默认线程的堆栈大小。可以根据系统的需求进行调整。

  42. LWIP_TCP_KEEPALIVE, TCP_KEEPIDLE_DEFAULT, TCP_KEEPINTVL_DEFAULT, TCP_KEEPCNT_DEFAULT, TCP_MAXIDLE: 这些宏定义了TCP保持连接的相关参数。可以根据系统的需求进行调整。

  43. LWIP_DEBUG: 定义了是否启用lwIP的调试功能。如果设置为1,将启用lwIP的调试功能。

  44. ICMP_DEBUG: 定义了ICMP调试的级别。可以根据系统的需求进行调整。

  45. LWIP_NETIF_LOOPBACK: 定义了是否启用lwIP的回环接口。如果设置为1,将启用lwIP的回环接口。

  46. LWIP_LOOPBACK_MAX_PBUFS: 定义了回环接口的最大pbuf(数据包缓冲区)数量。可以根据系统的需求进行调整。

这些宏定义可以根据具体的系统需求进行优化配置。例如,如果系统需要处理大量的TCP连接,可以增加MEMP_NUM_TCP_PCBMEMP_NUM_TCP_PCB_LISTEN的值。如果系统内存较小,可以减小MEM_SIZE的值。如果系统需要支持更多的UDP连接,可以增加MEMP_NUM_UDP_PCB的值。通过调整这些宏定义的值,可以根据系统的需求和硬件资源进行优化配置,以提高系统性能和资源利用率。

lwIP核心业务逻辑

lwip 文件生成

1
2
3
4
5
6
7
8
9
10
11
12
TARGET=makefsdata

C_INCLUDES = \
-I../../../include/ \
-I../../../../test/unit/ \
-I../../../../../contrib-2.1.0/ports/win32/include

all:
gcc $(C_INCLUDES) -o $(TARGET).exe makefsdata.c
clean:
-rm $(TARGET).exe

-->

请我喝杯咖啡吧~

支付宝
微信