ProjetoBB

Dependencies:   F7_Ethernet WebSocketClient mbed mcp3008

Fork of Nucleo_F746ZG_Ethernet by Dieter Graef

Committer:
DieterGraef
Date:
Sat Jun 18 10:49:12 2016 +0000
Revision:
0:f9b6112278fe
Ethernet for the NUCLEO STM32F746 Board Testprogram uses DHCP and NTP to set the clock

Who changed what in which revision?

UserRevisionLine numberNew contents of line
DieterGraef 0:f9b6112278fe 1 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
DieterGraef 0:f9b6112278fe 2 // Version for STM32F7
DieterGraef 0:f9b6112278fe 3 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
DieterGraef 0:f9b6112278fe 4 #ifndef __LWIPOPTS_H__
DieterGraef 0:f9b6112278fe 5 #define __LWIPOPTS_H__
DieterGraef 0:f9b6112278fe 6
DieterGraef 0:f9b6112278fe 7 #include <limits.h>
DieterGraef 0:f9b6112278fe 8 #include "stdlib.h"
DieterGraef 0:f9b6112278fe 9 #include "cmsis_os.h"
DieterGraef 0:f9b6112278fe 10 #include "stm32f7xx_hal.h"
DieterGraef 0:f9b6112278fe 11
DieterGraef 0:f9b6112278fe 12
DieterGraef 0:f9b6112278fe 13 //Debug Options
DieterGraef 0:f9b6112278fe 14 #define LWIP_DEBUG
DieterGraef 0:f9b6112278fe 15 #define SYS_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 16 #define SYSARCH_DEBUG LWIP_DBG_ON
DieterGraef 0:f9b6112278fe 17 #define NETIF_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 18 #define PPP_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 19 #define IP_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 20 #define MEM_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 21 #define MEMP_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 22 #define PBUF_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 23 #define API_LIB_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 24 #define API_MSG_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 25 #define TCPIP_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 26 #define SOCKETS_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 27 #define TCP_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 28 #define TCP_INPUT_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 29 #define TCP_FR_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 30 #define TCP_RTO_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 31 #define TCP_CWND_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 32 #define TCP_WND_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 33 #define TCP_OUTPUT_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 34 #define TCP_RST_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 35 #define TCP_QLEN_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 36 #define ETHARP_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 37 #define DHCP_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 38 #define SNMP_MSG_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 39 #define SNMP_MIB_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 40 #define DNS_DEBUG LWIP_DBG_OFF
DieterGraef 0:f9b6112278fe 41
DieterGraef 0:f9b6112278fe 42 #define SYS_LIGHTWEIGHT_PROT 1
DieterGraef 0:f9b6112278fe 43 #define ETHARP_TRUST_IP_MAC 0
DieterGraef 0:f9b6112278fe 44 #define IP_REASSEMBLY 0
DieterGraef 0:f9b6112278fe 45 #define IP_FRAG 0
DieterGraef 0:f9b6112278fe 46 #define ARP_QUEUEING 0
DieterGraef 0:f9b6112278fe 47 #define ETH_PAD_SIZE 0
DieterGraef 0:f9b6112278fe 48
DieterGraef 0:f9b6112278fe 49 #define MTU 1500 // Maximum transfer unit
DieterGraef 0:f9b6112278fe 50 #define TCPIP_MBOX_SIZE 8
DieterGraef 0:f9b6112278fe 51 #define DEFAULT_TCP_RECVMBOX_SIZE 8
DieterGraef 0:f9b6112278fe 52 #define DEFAULT_UDP_RECVMBOX_SIZE 8
DieterGraef 0:f9b6112278fe 53 #define DEFAULT_RAW_RECVMBOX_SIZE 8
DieterGraef 0:f9b6112278fe 54 #define DEFAULT_ACCEPTMBOX_SIZE 8
DieterGraef 0:f9b6112278fe 55 #define LOCK_RX_THREAD
DieterGraef 0:f9b6112278fe 56 #define LWIP_TCPIP_CORE_LOCKING 0
DieterGraef 0:f9b6112278fe 57 #define LWIP_TCPIP_CORE_LOCKING_INPUT 0
DieterGraef 0:f9b6112278fe 58 #define LWIP_CHECKSUM_ON_COPY 1
DieterGraef 0:f9b6112278fe 59 #define EMAC_RECIVE_THREAD_STACKSIZE 1536
DieterGraef 0:f9b6112278fe 60 #define DEFAULT_THREAD_STACKSIZE 512
DieterGraef 0:f9b6112278fe 61 #define TCPIP_THREAD_STACKSIZE 1536
DieterGraef 0:f9b6112278fe 62 #define TCPIP_THREAD_PRIO (osPriorityNormal)
DieterGraef 0:f9b6112278fe 63
DieterGraef 0:f9b6112278fe 64 #define LWIP_EVENT_API 0
DieterGraef 0:f9b6112278fe 65 #define LWIP_CALLBACK_API 1
DieterGraef 0:f9b6112278fe 66
DieterGraef 0:f9b6112278fe 67 #define ERRNO 1
DieterGraef 0:f9b6112278fe 68 #define NO_SYS 0
DieterGraef 0:f9b6112278fe 69 #define MEM_ALIGNMENT 4
DieterGraef 0:f9b6112278fe 70
DieterGraef 0:f9b6112278fe 71 #define PBUF_POOL_BUFSIZE 1524
DieterGraef 0:f9b6112278fe 72
DieterGraef 0:f9b6112278fe 73
DieterGraef 0:f9b6112278fe 74 #define MEM_SIZE (24*1024)
DieterGraef 0:f9b6112278fe 75 #define MEMP_NUM_PBUF 50
DieterGraef 0:f9b6112278fe 76 #define MEMP_NUM_UDP_PCB 10
DieterGraef 0:f9b6112278fe 77 #define MEMP_NUM_TCP_PCB 20
DieterGraef 0:f9b6112278fe 78 #define MEMP_NUM_TCP_PCB_LISTEN 20
DieterGraef 0:f9b6112278fe 79 #define MEMP_NUM_TCP_SEG 12
DieterGraef 0:f9b6112278fe 80 #define MEMP_NUM_SYS_TIMEOUT 10
DieterGraef 0:f9b6112278fe 81 #define MEMP_NUM_NETBUF 4
DieterGraef 0:f9b6112278fe 82 #define MEMP_NUM_NETCONN 10
DieterGraef 0:f9b6112278fe 83 #define PBUF_POOL_SIZE 10
DieterGraef 0:f9b6112278fe 84
DieterGraef 0:f9b6112278fe 85
DieterGraef 0:f9b6112278fe 86
DieterGraef 0:f9b6112278fe 87 #define TCP_TTL 255
DieterGraef 0:f9b6112278fe 88 #define TCP_QUEUE_OOSEQ 0
DieterGraef 0:f9b6112278fe 89 #define TCP_MIN_SEGLEN (MTU - 40)
DieterGraef 0:f9b6112278fe 90 #define TCP_MSS (MTU - 40)
DieterGraef 0:f9b6112278fe 91 #define TCP_SND_BUF (4*TCP_MSS)
DieterGraef 0:f9b6112278fe 92 #define TCP_SND_QUEUELEN (2*TCP_SND_BUF/TCP_MSS)
DieterGraef 0:f9b6112278fe 93 #define TCP_WND (2 * TCP_MSS)
DieterGraef 0:f9b6112278fe 94 #define TCP_SNDLOWAT (TCP_SND_BUF/2)
DieterGraef 0:f9b6112278fe 95
DieterGraef 0:f9b6112278fe 96
DieterGraef 0:f9b6112278fe 97 #define LWIP_RAW 0
DieterGraef 0:f9b6112278fe 98 #define TCPIP_LWIP 1
DieterGraef 0:f9b6112278fe 99 #define LWIP_NETIF_API 1
DieterGraef 0:f9b6112278fe 100 #define LWIP_DHCP 1
DieterGraef 0:f9b6112278fe 101 #define LWIP_TCP 1
DieterGraef 0:f9b6112278fe 102 #define LWIP_UDP 1
DieterGraef 0:f9b6112278fe 103 #define LWIP_DNS 1
DieterGraef 0:f9b6112278fe 104 #define LWIP_ICMP 1
DieterGraef 0:f9b6112278fe 105 #define LWIP_IGMP 1
DieterGraef 0:f9b6112278fe 106 #define LWIP_ARP 1
DieterGraef 0:f9b6112278fe 107 #define LWIP_AUTOIP 0
DieterGraef 0:f9b6112278fe 108 #define LWIP_SNMP 0
DieterGraef 0:f9b6112278fe 109 #define LWIP_NETBIOS 1
DieterGraef 0:f9b6112278fe 110 #define NETBIOS_LWIP_NAME ("STM32F746")
DieterGraef 0:f9b6112278fe 111 #define LWIP_NETIF_HOSTNAME 1
DieterGraef 0:f9b6112278fe 112 #define NETIF_HOSTNAME ("STM32F746")
DieterGraef 0:f9b6112278fe 113 #define LWIP_NETIF_LOOPBACK 1
DieterGraef 0:f9b6112278fe 114 #define LWIP_HAVE_LOOPIF 1
DieterGraef 0:f9b6112278fe 115
DieterGraef 0:f9b6112278fe 116 #define LWIP_NETIF_LINK_CALLBACK 1
DieterGraef 0:f9b6112278fe 117 #define LWIP_NETIF_STATUS_CALLBACK 1
DieterGraef 0:f9b6112278fe 118
DieterGraef 0:f9b6112278fe 119 #define LWIP_SO_RCVBUF 0
DieterGraef 0:f9b6112278fe 120
DieterGraef 0:f9b6112278fe 121 #define LWIP_RAND rand
DieterGraef 0:f9b6112278fe 122
DieterGraef 0:f9b6112278fe 123 #ifdef DEBUG
DieterGraef 0:f9b6112278fe 124 #define DHCP_CREATE_RAND_XID 0
DieterGraef 0:f9b6112278fe 125 #endif
DieterGraef 0:f9b6112278fe 126
DieterGraef 0:f9b6112278fe 127 // Keepalive values, compliant with RFC 1122. Don't change this unless you know what you're doing
DieterGraef 0:f9b6112278fe 128 #define TCP_KEEPIDLE_DEFAULT 10000UL // Default KEEPALIVE timer in milliseconds
DieterGraef 0:f9b6112278fe 129 #define TCP_KEEPINTVL_DEFAULT 2000UL // Default Time between KEEPALIVE probes in milliseconds
DieterGraef 0:f9b6112278fe 130 #define TCP_KEEPCNT_DEFAULT 9U // Default Counter for KEEPALIVE probes
DieterGraef 0:f9b6112278fe 131
DieterGraef 0:f9b6112278fe 132 #define CHECKSUM_BY_HARDWARE
DieterGraef 0:f9b6112278fe 133 #ifdef CHECKSUM_BY_HARDWARE
DieterGraef 0:f9b6112278fe 134 /* CHECKSUM_GEN_IP==0: Generate checksums by hardware for outgoing IP packets.*/
DieterGraef 0:f9b6112278fe 135 #define CHECKSUM_GEN_IP 0
DieterGraef 0:f9b6112278fe 136 /* CHECKSUM_GEN_UDP==0: Generate checksums by hardware for outgoing UDP packets.*/
DieterGraef 0:f9b6112278fe 137 #define CHECKSUM_GEN_UDP 0
DieterGraef 0:f9b6112278fe 138 /* CHECKSUM_GEN_TCP==0: Generate checksums by hardware for outgoing TCP packets.*/
DieterGraef 0:f9b6112278fe 139 #define CHECKSUM_GEN_TCP 0
DieterGraef 0:f9b6112278fe 140 /* CHECKSUM_CHECK_IP==0: Check checksums by hardware for incoming IP packets.*/
DieterGraef 0:f9b6112278fe 141 #define CHECKSUM_CHECK_IP 0
DieterGraef 0:f9b6112278fe 142 /* CHECKSUM_CHECK_UDP==0: Check checksums by hardware for incoming UDP packets.*/
DieterGraef 0:f9b6112278fe 143 #define CHECKSUM_CHECK_UDP 0
DieterGraef 0:f9b6112278fe 144 /* CHECKSUM_CHECK_TCP==0: Check checksums by hardware for incoming TCP packets.*/
DieterGraef 0:f9b6112278fe 145 #define CHECKSUM_CHECK_TCP 0
DieterGraef 0:f9b6112278fe 146 /* CHECKSUM_GEN_ICMP==1: Generate checksums in software for outgoing ICMP packets.*/
DieterGraef 0:f9b6112278fe 147 #define CHECKSUM_GEN_ICMP 0
DieterGraef 0:f9b6112278fe 148 #else
DieterGraef 0:f9b6112278fe 149 /* CHECKSUM_GEN_IP==1: Generate checksums in software for outgoing IP packets.*/
DieterGraef 0:f9b6112278fe 150 #define CHECKSUM_GEN_IP 1
DieterGraef 0:f9b6112278fe 151 /* CHECKSUM_GEN_UDP==1: Generate checksums in software for outgoing UDP packets.*/
DieterGraef 0:f9b6112278fe 152 #define CHECKSUM_GEN_UDP 1
DieterGraef 0:f9b6112278fe 153 /* CHECKSUM_GEN_TCP==1: Generate checksums in software for outgoing TCP packets.*/
DieterGraef 0:f9b6112278fe 154 #define CHECKSUM_GEN_TCP 1
DieterGraef 0:f9b6112278fe 155 /* CHECKSUM_CHECK_IP==1: Check checksums in software for incoming IP packets.*/
DieterGraef 0:f9b6112278fe 156 #define CHECKSUM_CHECK_IP 1
DieterGraef 0:f9b6112278fe 157 /* CHECKSUM_CHECK_UDP==1: Check checksums in software for incoming UDP packets.*/
DieterGraef 0:f9b6112278fe 158 #define CHECKSUM_CHECK_UDP 1
DieterGraef 0:f9b6112278fe 159 /* CHECKSUM_CHECK_TCP==1: Check checksums in software for incoming TCP packets.*/
DieterGraef 0:f9b6112278fe 160 #define CHECKSUM_CHECK_TCP 1
DieterGraef 0:f9b6112278fe 161 /* CHECKSUM_GEN_ICMP==1: Generate checksums in software for outgoing ICMP packets.*/
DieterGraef 0:f9b6112278fe 162 #define CHECKSUM_GEN_ICMP 1
DieterGraef 0:f9b6112278fe 163 #endif
DieterGraef 0:f9b6112278fe 164
DieterGraef 0:f9b6112278fe 165
DieterGraef 0:f9b6112278fe 166
DieterGraef 0:f9b6112278fe 167 #endif /* __LWIPOPTS_H__ */