/*! \file lwipopts.h \brief LwIP options configuration */ /* Copyright (C) 2016 GigaDevice 2016-08-15, V1.0.0, firmware for GD32F4xx */ #ifndef LWIPOPTS_H #define LWIPOPTS_H #define ETHARP_TRUST_IP_MAC 0 #define IP_REASSEMBLY 0 #define IP_FRAG 0 #define ARP_QUEUEING 0 #define SYS_LIGHTWEIGHT_PROT 1 /* SYS_LIGHTWEIGHT_PROT==1: if you want inter-task protection \ for certain critical regions during buffer allocation, \ deallocation and memory allocation and deallocation */ #define NO_SYS 0 /* NO_SYS==1: provides VERY minimal functionality. \ Otherwise, use lwIP facilities */ /* memory options */ #define MEM_ALIGNMENT 4 /* should be set to the alignment of the CPU for which lwIP \ is compiled. 4 byte alignment -> define MEM_ALIGNMENT \ to 4, 2 byte alignment -> define MEM_ALIGNMENT to 2 */ #define MEM_SIZE (12 * 1024) /* the size of the heap memory, if the application will \ send a lot of data that needs to be copied, this should \ be set high */ #define MEMP_NUM_PBUF 20 /* the number of memp struct pbufs. If the application \ sends a lot of data out of ROM (or other static memory), \ this should be set high */ #define MEMP_NUM_UDP_PCB 6 /* the number of UDP protocol control blocks, one \ per active UDP "connection" */ #define MEMP_NUM_TCP_PCB 10 /* the number of simulatenously active TCP connections */ #define MEMP_NUM_TCP_PCB_LISTEN 5 /* the number of listening TCP connections */ #define MEMP_NUM_TCP_SEG 20 /* the number of simultaneously queued TCP segments */ #define MEMP_NUM_SYS_TIMEOUT 10 /* the number of simulateously active timeouts */ #define MEMP_NUM_NETBUF 8 /* the number of struct netbufs */ /* ---------- pbuf选项 ---------- */ #define MEMP_NUM_PBUF 15 /* MEMP_NUM_PBUF:memp结构的pbuf数量,如果应用从ROM或者静态存储区发送大量数据时,这个值应该设置大一点 */ #define PBUF_POOL_SIZE 15 /* PBUF_POOL_SIZE:pbuf内存池个数 */ #define PBUF_POOL_BUFSIZE 1528 /* PBUF_POOL_BUFSIZE:每个pbuf内存池大小 */ #define LWIP_SUPPORT_CUSTOM_PBUF 1 /* TCP options */ #define LWIP_TCP 1 #define TCP_TTL 255 #define TCP_QUEUE_OOSEQ 0 /* controls if TCP should queue segments that arrive out of \ order, Define to 0 if your device is low on memory. */ #undef TCPIP_MBOX_SIZE #define TCPIP_MBOX_SIZE MAX_QUEUE_ENTRIES /* the mailbox size for the tcpip thread messages */ #undef DEFAULT_TCP_RECVMBOX_SIZE #define DEFAULT_TCP_RECVMBOX_SIZE MAX_QUEUE_ENTRIES /* the mailbox size for the incoming packets on a NETCONN_TCP */ #undef DEFAULT_ACCEPTMBOX_SIZE /* the mailbox size for the incoming connections */ #define DEFAULT_ACCEPTMBOX_SIZE MAX_QUEUE_ENTRIES #define DEFAULT_UDP_RECVMBOX_SIZE MAX_QUEUE_ENTRIES /* The mailbox size for the incoming packets on a NETCONN_UDP */ #define TCP_MSS (1500 - 40) /* TCP Maximum segment size, \ TCP_MSS = (Ethernet MTU - IP header size - TCP header size) */ #define TCP_SND_BUF (5 * TCP_MSS) /* TCP sender buffer space (bytes) */ #define TCP_SND_QUEUELEN ((4 * TCP_SND_BUF) / TCP_MSS) /* TCP sender buffer space (pbufs), this must be at least \ as much as (2 * TCP_SND_BUF/TCP_MSS) for things to work */ #define TCP_WND (2 * TCP_MSS) /* TCP receive window */ /* ICMP options */ #define LWIP_ICMP 1 /* DHCP options */ #define LWIP_DHCP 0 /* define to 1 if you want DHCP configuration of interfaces, \ DHCP is not implemented in lwIP 0.5.1, however, so \ turning this on does currently not work. */ #define LWIP_IPV4 1 #define LWIP_IPV6 0 /* UDP options */ #define LWIP_UDP 1 #define UDP_TTL 255 /* statistics options */ #define LWIP_STATS 0 #define LWIP_PROVIDE_ERRNO 1 /* checksum options */ #define CHECKSUM_BY_HARDWARE /* computing and verifying the IP, UDP, TCP and ICMP \ checksums by hardware */ /* netconn options */ #define LWIP_NETCONN 1 /* set to 1 to enable netconn API (require to use api_lib.c) */ #define MEMP_NUM_NETCONN 10 /* the number of struct netconns */ /* socket options */ #define LWIP_SOCKET 1 /* set to 1 to enable socket API (require to use sockets.c) */ #define LWIP_SO_RCVTIMEO 1 /* set to 1 to enable receive timeout for sockets/netconns and \ SO_RCVTIMEO processing */ #define LWIP_NETIF_LINK_CALLBACK 1 /* Lwip debug options */ #define LWIP_DEBUG 0 #ifdef CHECKSUM_BY_HARDWARE /* CHECKSUM_GEN_IP==0: generate checksums by hardware for outgoing IP packets.*/ #define CHECKSUM_GEN_IP 0 /* CHECKSUM_GEN_UDP==0: generate checksums by hardware for outgoing UDP packets.*/ #define CHECKSUM_GEN_UDP 0 /* CHECKSUM_GEN_TCP==0: generate checksums by hardware for outgoing TCP packets.*/ #define CHECKSUM_GEN_TCP 0 /* CHECKSUM_CHECK_IP==0: check checksums by hardware for incoming IP packets.*/ #define CHECKSUM_CHECK_IP 0 /* CHECKSUM_CHECK_UDP==0: check checksums by hardware for incoming UDP packets.*/ #define CHECKSUM_CHECK_UDP 0 /* CHECKSUM_CHECK_TCP==0: check checksums by hardware for incoming TCP packets.*/ #define CHECKSUM_CHECK_TCP 0 #define CHECKSUM_GEN_ICMP 0 #else /* CHECKSUM_GEN_IP==1: generate checksums in software for outgoing IP packets.*/ #define CHECKSUM_GEN_IP 1 /* CHECKSUM_GEN_UDP==1: generate checksums in software for outgoing UDP packets.*/ #define CHECKSUM_GEN_UDP 1 /* CHECKSUM_GEN_TCP==1: generate checksums in software for outgoing TCP packets.*/ #define CHECKSUM_GEN_TCP 1 /* CHECKSUM_CHECK_IP==1: check checksums in software for incoming IP packets.*/ #define CHECKSUM_CHECK_IP 1 /* CHECKSUM_CHECK_UDP==1: check checksums in software for incoming UDP packets.*/ #define CHECKSUM_CHECK_UDP 1 /* CHECKSUM_CHECK_TCP==1: check checksums in software for incoming TCP packets.*/ #define CHECKSUM_CHECK_TCP 1 #define CHECKSUM_GEN_ICMP 1 #endif /* --------------------------------- ---------- OS options ---------- --------------------------------- */ #define TCPIP_THREAD_STACKSIZE 1000 #define DEFAULT_THREAD_STACKSIZE 512 #define LWIP_COMPAT_MUTEX 1 #define TCPIP_THREAD_PRIO 5 #define DEFAULT_THREAD_PRIO 2 #endif /* LWIPOPTS_H */