Ethernet for Nucleo and Disco board STM32F746 works with gcc and arm. IAC is untested

Dependents:   STM32F746_iothub_client_sample_mqtt DISCO-F746NG_Ethernet Nucleo_F746ZG_Ethernet thethingsiO-DISCO_F746NG-mqtt ... more

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers lwipopts.h Source File

lwipopts.h

00001 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
00002 // For STM32F746
00003 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
00004 #ifndef __LWIPOPTS_H__
00005 #define __LWIPOPTS_H__
00006 
00007 #include <limits.h>
00008 #include "stdlib.h"
00009 #include "cmsis_os.h"
00010 #include "stm32f7xx_hal.h"
00011 
00012 
00013 //Debug Options
00014 #define LWIP_DEBUG
00015 #define SYS_DEBUG                   LWIP_DBG_OFF
00016 #define SYSARCH_DEBUG               LWIP_DBG_ON
00017 #define NETIF_DEBUG                 LWIP_DBG_OFF
00018 #define PPP_DEBUG                   LWIP_DBG_OFF
00019 #define IP_DEBUG                    LWIP_DBG_OFF
00020 #define MEM_DEBUG                   LWIP_DBG_OFF
00021 #define MEMP_DEBUG                  LWIP_DBG_OFF
00022 #define PBUF_DEBUG                  LWIP_DBG_OFF
00023 #define API_LIB_DEBUG               LWIP_DBG_OFF
00024 #define API_MSG_DEBUG               LWIP_DBG_OFF
00025 #define TCPIP_DEBUG                 LWIP_DBG_OFF
00026 #define SOCKETS_DEBUG               LWIP_DBG_OFF
00027 #define TCP_DEBUG                   LWIP_DBG_OFF
00028 #define TCP_INPUT_DEBUG             LWIP_DBG_OFF
00029 #define TCP_FR_DEBUG                LWIP_DBG_OFF
00030 #define TCP_RTO_DEBUG               LWIP_DBG_OFF
00031 #define TCP_CWND_DEBUG              LWIP_DBG_OFF
00032 #define TCP_WND_DEBUG               LWIP_DBG_OFF
00033 #define TCP_OUTPUT_DEBUG            LWIP_DBG_OFF
00034 #define TCP_RST_DEBUG               LWIP_DBG_OFF
00035 #define TCP_QLEN_DEBUG              LWIP_DBG_OFF
00036 #define ETHARP_DEBUG                LWIP_DBG_OFF
00037 #define DHCP_DEBUG                  LWIP_DBG_OFF
00038 #define SNMP_MSG_DEBUG              LWIP_DBG_OFF
00039 #define SNMP_MIB_DEBUG              LWIP_DBG_OFF
00040 #define DNS_DEBUG                   LWIP_DBG_OFF
00041 
00042 #define SYS_LIGHTWEIGHT_PROT    1
00043 #define ETHARP_TRUST_IP_MAC     0
00044 #define IP_REASSEMBLY           0
00045 #define IP_FRAG                 0
00046 #define ARP_QUEUEING            0
00047 #define ETH_PAD_SIZE            0
00048 
00049 #define MTU                         1500             // Maximum transfer unit
00050 #define TCPIP_MBOX_SIZE             8
00051 #define DEFAULT_TCP_RECVMBOX_SIZE   8
00052 #define DEFAULT_UDP_RECVMBOX_SIZE   8
00053 #define DEFAULT_RAW_RECVMBOX_SIZE   8
00054 #define DEFAULT_ACCEPTMBOX_SIZE     8
00055 #define LOCK_RX_THREAD
00056 #define LWIP_TCPIP_CORE_LOCKING         0
00057 #define LWIP_TCPIP_CORE_LOCKING_INPUT   0
00058 #define LWIP_CHECKSUM_ON_COPY           1
00059 #define EMAC_RECIVE_THREAD_STACKSIZE  1536
00060 #define DEFAULT_THREAD_STACKSIZE    512
00061 #define TCPIP_THREAD_STACKSIZE      1536
00062 #define TCPIP_THREAD_PRIO           (osPriorityNormal)
00063 
00064 #define LWIP_EVENT_API                  0
00065 #define LWIP_CALLBACK_API               1
00066 
00067 #define ERRNO                           1
00068 #define NO_SYS                          0
00069 #define MEM_ALIGNMENT                   4
00070 
00071 #define PBUF_POOL_BUFSIZE               1524
00072 
00073 
00074  #define MEM_SIZE                        (24*1024)
00075  #define MEMP_NUM_PBUF                   50
00076  #define MEMP_NUM_UDP_PCB                10
00077  #define MEMP_NUM_TCP_PCB                20
00078  #define MEMP_NUM_TCP_PCB_LISTEN         20
00079  #define MEMP_NUM_TCP_SEG                12
00080  #define MEMP_NUM_SYS_TIMEOUT            10
00081  #define MEMP_NUM_NETBUF                 4
00082  #define MEMP_NUM_NETCONN                10
00083  #define PBUF_POOL_SIZE                  10
00084 
00085 
00086 
00087 #define TCP_TTL                         255
00088 #define TCP_QUEUE_OOSEQ                 0
00089 #define TCP_MIN_SEGLEN                  (MTU - 40)
00090 #define TCP_MSS                         (MTU - 40)
00091 #define TCP_SND_BUF                     (4*TCP_MSS)
00092 #define TCP_SND_QUEUELEN                (2*TCP_SND_BUF/TCP_MSS)
00093 #define TCP_WND                         (2 * TCP_MSS)
00094 #define TCP_SNDLOWAT                    (TCP_SND_BUF/2)
00095 
00096 
00097 #define LWIP_RAW                        0
00098 #define TCPIP_LWIP                      1
00099 #define LWIP_NETIF_API                  1
00100 #define LWIP_DHCP                       1
00101 #define LWIP_TCP                        1
00102 #define LWIP_UDP                        1
00103 #define LWIP_DNS                        1
00104 #define LWIP_ICMP                       1
00105 #define LWIP_IGMP                       1
00106 #define LWIP_ARP                        1
00107 #define LWIP_AUTOIP                     0
00108 #define LWIP_SNMP                       0
00109 #define LWIP_NETBIOS                    1
00110 #define NETBIOS_LWIP_NAME               ("STM32F746")
00111 #define LWIP_NETIF_HOSTNAME             1
00112 #define NETIF_HOSTNAME                  ("STM32F746")
00113 #define LWIP_NETIF_LOOPBACK             1
00114 #define LWIP_HAVE_LOOPIF                1
00115 
00116 #define LWIP_NETIF_LINK_CALLBACK        1
00117 #define LWIP_NETIF_STATUS_CALLBACK      1
00118 
00119 #define LWIP_SO_RCVBUF                  0
00120 
00121 #define LWIP_RAND                       rand
00122 
00123 #ifdef DEBUG
00124 #define DHCP_CREATE_RAND_XID            0
00125 #endif
00126 
00127 // Keepalive values, compliant with RFC 1122. Don't change this unless you know what you're doing
00128 #define TCP_KEEPIDLE_DEFAULT            10000UL // Default KEEPALIVE timer in milliseconds
00129 #define TCP_KEEPINTVL_DEFAULT           2000UL  // Default Time between KEEPALIVE probes in milliseconds
00130 #define TCP_KEEPCNT_DEFAULT             9U      // Default Counter for KEEPALIVE probes
00131 
00132 #define CHECKSUM_BY_HARDWARE
00133 #ifdef CHECKSUM_BY_HARDWARE
00134   /* CHECKSUM_GEN_IP==0: Generate checksums by hardware for outgoing IP packets.*/
00135   #define CHECKSUM_GEN_IP                 0
00136   /* CHECKSUM_GEN_UDP==0: Generate checksums by hardware for outgoing UDP packets.*/
00137   #define CHECKSUM_GEN_UDP                0
00138   /* CHECKSUM_GEN_TCP==0: Generate checksums by hardware for outgoing TCP packets.*/
00139   #define CHECKSUM_GEN_TCP                0
00140   /* CHECKSUM_CHECK_IP==0: Check checksums by hardware for incoming IP packets.*/
00141   #define CHECKSUM_CHECK_IP               0
00142   /* CHECKSUM_CHECK_UDP==0: Check checksums by hardware for incoming UDP packets.*/
00143   #define CHECKSUM_CHECK_UDP              0
00144   /* CHECKSUM_CHECK_TCP==0: Check checksums by hardware for incoming TCP packets.*/
00145   #define CHECKSUM_CHECK_TCP              0
00146   /* CHECKSUM_GEN_ICMP==1: Generate checksums in software for outgoing ICMP packets.*/
00147   #define CHECKSUM_GEN_ICMP               0
00148 #else
00149   /* CHECKSUM_GEN_IP==1: Generate checksums in software for outgoing IP packets.*/
00150   #define CHECKSUM_GEN_IP                 1
00151   /* CHECKSUM_GEN_UDP==1: Generate checksums in software for outgoing UDP packets.*/
00152   #define CHECKSUM_GEN_UDP                1
00153   /* CHECKSUM_GEN_TCP==1: Generate checksums in software for outgoing TCP packets.*/
00154   #define CHECKSUM_GEN_TCP                1
00155   /* CHECKSUM_CHECK_IP==1: Check checksums in software for incoming IP packets.*/
00156   #define CHECKSUM_CHECK_IP               1
00157   /* CHECKSUM_CHECK_UDP==1: Check checksums in software for incoming UDP packets.*/
00158   #define CHECKSUM_CHECK_UDP              1
00159   /* CHECKSUM_CHECK_TCP==1: Check checksums in software for incoming TCP packets.*/
00160   #define CHECKSUM_CHECK_TCP              1
00161   /* CHECKSUM_GEN_ICMP==1: Generate checksums in software for outgoing ICMP packets.*/
00162   #define CHECKSUM_GEN_ICMP               1
00163 #endif
00164 
00165 
00166 
00167 #endif /* __LWIPOPTS_H__ */