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 net_decl.h Source File

net_decl.h

00001 //
00002 // NET_DECL.H - header file for other ebs header files
00003 //
00004 //
00005 // EBSnet - RTIP
00006 //
00007 //  $Author: YOHANNES $
00008 //  $Date: 2007/11/21 12:00:00 $
00009 //  $Name:  $
00010 //  $Revision: 1.1 $
00011 //
00012 // Copyright EBSnet Inc. , 2007
00013 // All rights reserved.
00014 // This code may not be redistributed in source or linkable object form
00015 // without the consent of its author.
00016 //
00017 // Module description:
00018 // 
00019 //
00020 
00021 #ifndef _NET_DECL_H_
00022 #define _NET_DECL_H_
00023 
00024 #include <tinyhal.h>
00025 #include "network_defines.h"
00026 
00027 #ifdef PLATFORM_DEPENDENT__NETWORK_MEMORY_POOL__SIZE
00028 #define NETWORK_MEMORY_POOL__SIZE PLATFORM_DEPENDENT__NETWORK_MEMORY_POOL__SIZE
00029 #else
00030 #define NETWORK_MEMORY_POOL__SIZE NETWORK_MEMORY_POOL__SIZE__default
00031 #endif
00032 
00033 #ifdef PLATFORM_DEPENDENT__NETWORK_PACKET_POOL_0__NUM_PACKETS
00034 #define NETWORK_PACKET_POOL_0__NUM_PACKETS PLATFORM_DEPENDENT__NETWORK_PACKET_POOL_0__NUM_PACKETS
00035 #else
00036 #define NETWORK_PACKET_POOL_0__NUM_PACKETS NETWORK_PACKET_POOL_0__NUM_PACKETS__default
00037 #endif
00038 
00039 #ifdef PLATFORM_DEPENDENT__NETWORK_PACKET_POOL_1__NUM_PACKETS
00040 #define NETWORK_PACKET_POOL_1__NUM_PACKETS PLATFORM_DEPENDENT__NETWORK_PACKET_POOL_1__NUM_PACKETS
00041 #else
00042 #define NETWORK_PACKET_POOL_1__NUM_PACKETS NETWORK_PACKET_POOL_1__NUM_PACKETS__default
00043 #endif
00044 
00045 #ifdef PLATFORM_DEPENDENT__NETWORK_PACKET_POOL_2__NUM_PACKETS
00046 #define NETWORK_PACKET_POOL_2__NUM_PACKETS PLATFORM_DEPENDENT__NETWORK_PACKET_POOL_2__NUM_PACKETS
00047 #else
00048 #define NETWORK_PACKET_POOL_2__NUM_PACKETS NETWORK_PACKET_POOL_2__NUM_PACKETS__default
00049 #endif
00050 
00051 #ifdef PLATFORM_DEPENDENT__NETWORK_PACKET_POOL_3__NUM_PACKETS
00052 #define NETWORK_PACKET_POOL_3__NUM_PACKETS PLATFORM_DEPENDENT__NETWORK_PACKET_POOL_3__NUM_PACKETS
00053 #else
00054 #define NETWORK_PACKET_POOL_3__NUM_PACKETS NETWORK_PACKET_POOL_3__NUM_PACKETS__default
00055 #endif
00056 
00057 #ifdef PLATFORM_DEPENDENT__NETWORK_PACKET_POOL_4__NUM_PACKETS
00058 #define NETWORK_PACKET_POOL_4__NUM_PACKETS PLATFORM_DEPENDENT__NETWORK_PACKET_POOL_4__NUM_PACKETS
00059 #else
00060 #define NETWORK_PACKET_POOL_4__NUM_PACKETS NETWORK_PACKET_POOL_4__NUM_PACKETS__default
00061 #endif
00062 
00063 #ifdef PLATFORM_DEPENDENT__NETWORK_PACKET_POOL_5__NUM_PACKETS
00064 #define NETWORK_PACKET_POOL_5__NUM_PACKETS PLATFORM_DEPENDENT__NETWORK_PACKET_POOL_5__NUM_PACKETS
00065 #else
00066 #define NETWORK_PACKET_POOL_5__NUM_PACKETS NETWORK_PACKET_POOL_5__NUM_PACKETS__default
00067 #endif
00068 
00069 //--//
00070 
00071 #ifdef PLATFORM_DEPENDENT__NETWORK_NUM_IFACES
00072 #define NETWORK_NUM_IFACES PLATFORM_DEPENDENT__NETWORK_NUM_IFACES
00073 #else
00074 #define NETWORK_NUM_IFACES NETWORK_NUM_IFACES__default
00075 #endif
00076 
00077 #ifdef PLATFORM_DEPENDENT__NETWORK_NUM_DEVICES
00078 #define NETWORK_NUM_DEVICES PLATFORM_DEPENDENT__NETWORK_NUM_DEVICES
00079 #else
00080 #define NETWORK_NUM_DEVICES NETWORK_NUM_DEVICES__default
00081 #endif
00082 
00083 #ifdef PLATFORM_DEPENDENT__NETWORK_MULTICAST_LIST_SIZE
00084 #define NETWORK_MULTICAST_LIST_SIZE PLATFORM_DEPENDENT__NETWORK_MULTICAST_LIST_SIZE
00085 #else
00086 #define NETWORK_MULTICAST_LIST_SIZE NETWORK_MULTICAST_LIST_SIZE__default
00087 #endif
00088 
00089 #ifdef PLATFORM_DEPENDENT__NETWORK_ROUTINGTABLE_SIZE
00090 #define NETWORK_ROUTINGTABLE_SIZE PLATFORM_DEPENDENT__NETWORK_ROUTINGTABLE_SIZE
00091 #else
00092 #define NETWORK_ROUTINGTABLE_SIZE NETWORK_ROUTINGTABLE_SIZE__default
00093 #endif
00094 
00095 #ifdef PLATFORM_DEPENDENT__NETWORK_ARP_NUM_TABLE_ENTRIES
00096 #define NETWORK_ARP_NUM_TABLE_ENTRIES PLATFORM_DEPENDENT__NETWORK_ARP_NUM_TABLE_ENTRIES
00097 #else
00098 #define NETWORK_ARP_NUM_TABLE_ENTRIES NETWORK_ARP_NUM_TABLE_ENTRIES__default
00099 #endif
00100 
00101 #ifdef PLATFORM_DEPENDENT__NETWORK_FRAG_TABLE_SIZE
00102 #define NETWORK_FRAG_TABLE_SIZE PLATFORM_DEPENDENT__NETWORK_FRAG_TABLE_SIZE
00103 #else
00104 #define NETWORK_FRAG_TABLE_SIZE NETWORK_FRAG_TABLE_SIZE__default
00105 #endif
00106 
00107 #ifdef PLATFORM_DEPENDENT__NETWORK_NAT_NUM_ENTRIES
00108 #define NETWORK_NAT_NUM_ENTRIES PLATFORM_DEPENDENT__NETWORK_NAT_NUM_ENTRIES
00109 #else
00110 #define NETWORK_NAT_NUM_ENTRIES NETWORK_NAT_NUM_ENTRIES__default
00111 #endif
00112 
00113 #ifdef PLATFORM_DEPENDENT__NETWORK_TCP_NUM_PORTS__SUPPORTED
00114 #define NETWORK_TCP_NUM_PORTS__SUPPORTED PLATFORM_DEPENDENT__NETWORK_TCP_NUM_PORTS__SUPPORTED
00115 #else
00116 #define NETWORK_TCP_NUM_PORTS__SUPPORTED NETWORK_TCP_NUM_PORTS__SUPPORTED__default
00117 #endif
00118 
00119 #ifdef PLATFORM_DEPENDENT__NETWORK_UDP_NUM_PORTS__SUPPORTED
00120 #define NETWORK_UDP_NUM_PORTS__SUPPORTED PLATFORM_DEPENDENT__NETWORK_UDP_NUM_PORTS__SUPPORTED
00121 #else
00122 #define NETWORK_UDP_NUM_PORTS__SUPPORTED NETWORK_UDP_NUM_PORTS__SUPPORTED__default
00123 #endif
00124 
00125 #ifdef PLATFORM_DEPENDENT__NETWORK_DHCP_RETRIES
00126 #define NETWORK_DHCP_RETRIES PLATFORM_DEPENDENT__NETWORK_DHCP_RETRIES
00127 #else
00128 #define NETWORK_DHCP_RETRIES NETWORK_DHCP_RETRIES__default
00129 #endif
00130 
00131 #ifdef PLATFORM_DEPENDENT__NETWORK_DHCP_TIMEOUT
00132 #define NETWORK_DHCP_TIMEOUT PLATFORM_DEPENDENT__NETWORK_DHCP_TIMEOUT
00133 #else
00134 #define NETWORK_DHCP_TIMEOUT NETWORK_DHCP_TIMEOUT__default
00135 #endif
00136 
00137 #ifdef PLATFORM_DEPENDENT__NETWORK_IGMPV1_MAX_DELAY
00138 #define NETWORK_IGMPV1_MAX_DELAY PLATFORM_DEPENDENT__NETWORK_IGMPV1_MAX_DELAY
00139 #else
00140 #define NETWORK_IGMPV1_MAX_DELAY NETWORK_IGMPV1_MAX_DELAY__default
00141 #endif
00142 
00143 #ifdef PLATFORM_DEPENDENT__NETWORK_ARP_REQ_TIMEOUT
00144 #define NETWORK_ARP_REQ_TIMEOUT PLATFORM_DEPENDENT__NETWORK_ARP_REQ_TIMEOUT
00145 #else
00146 #define NETWORK_ARP_REQ_TIMEOUT NETWORK_ARP_REQ_TIMEOUT__default
00147 #endif
00148 
00149 #ifdef PLATFORM_DEPENDENT__NETWORK_ARP_MAX_RETRIES
00150 #define NETWORK_ARP_MAX_RETRIES PLATFORM_DEPENDENT__NETWORK_ARP_MAX_RETRIES
00151 #else
00152 #define NETWORK_ARP_MAX_RETRIES NETWORK_ARP_MAX_RETRIES__default
00153 #endif 
00154 
00155 #ifdef PLATFORM_DEPENDENT__NETWORK_ARP_RES_TIMEOUT
00156 #define NETWORK_ARP_RES_TIMEOUT PLATFORM_DEPENDENT__NETWORK_ARP_RES_TIMEOUT
00157 #else
00158 #define NETWORK_ARP_RES_TIMEOUT NETWORK_ARP_RES_TIMEOUT__default
00159 #endif
00160 
00161 #ifdef PLATFORM_DEPENDENT__NETWORK_DNS_MIN_DELAY
00162 #define NETWORK_DNS_MIN_DELAY PLATFORM_DEPENDENT__NETWORK_DNS_MIN_DELAY
00163 #else
00164 #define NETWORK_DNS_MIN_DELAY NETWORK_DNS_MIN_DELAY__default
00165 #endif 
00166 
00167 #ifdef PLATFORM_DEPENDENT__NETWORK_DNS_MAX_DELAY
00168 #define NETWORK_DNS_MAX_DELAY PLATFORM_DEPENDENT__NETWORK_DNS_MAX_DELAY
00169 #else
00170 #define NETWORK_DNS_MAX_DELAY NETWORK_DNS_MAX_DELAY__default
00171 #endif
00172 
00173 #ifdef PLATFORM_DEPENDENT__NETWORK_DNS_RETRIES
00174 #define NETWORK_DNS_RETRIES PLATFORM_DEPENDENT__NETWORK_DNS_RETRIES
00175 #else
00176 #define NETWORK_DNS_RETRIES NETWORK_DNS_RETRIES__default
00177 #endif
00178 
00179 //--// RAM size estimate macro
00180 
00181 // The following values are from the EBSNet RAM usage spreadsheet
00182 #define _NETWORK_SIZEOF_NONE                4
00183 // mclist_ip, mclist_eth, mcast_cnt, report_timer, last_host_toreply
00184 #define _NETWORK_SIZEOF_MCLISTSIZE          (4*3)
00185 #define _NETWORK_SIZEOF_DCU                 112
00186 #define _NETWORK_SIZEOF_IFACE               (380 + 28 + 84 + 4 + 4 + 16 + 16 + (8 * 8))
00187 #define _NETWORK_SIZEOF_ROUTINGTABLE        56
00188 #define _NETWORK_SIZEOF_ARP_ENTRY           28
00189 #define _NETWORK_SIZEOF_TCPPORT             (472 + 16 + (8*8))
00190 #define _NETWORK_SIZEOF_UDPPORT             (272 + 16 + (8*8))
00191 #define _NETWORK_SIZEOF_FRAG_ENTRY          20
00192 #define _NETWORK_SIZEOF_NAT_ENTRY           24 
00193 #define _NETWORK_SIZEOF_PACKET_OVERHEAD     1
00194 
00195 #define _NETWORK_TOTAL_PACKET_COUNT        (NETWORK_PACKET_POOL_0__NUM_PACKETS + \
00196                                             NETWORK_PACKET_POOL_1__NUM_PACKETS + \
00197                                             NETWORK_PACKET_POOL_2__NUM_PACKETS + \
00198                                             NETWORK_PACKET_POOL_3__NUM_PACKETS + \
00199                                             NETWORK_PACKET_POOL_4__NUM_PACKETS + \
00200                                             NETWORK_PACKET_POOL_5__NUM_PACKETS)
00201                                             
00202 
00203 #define NETWORK_RAM_SIZE_ESTIMATE() (\
00204     _NETWORK_SIZEOF_NONE + \
00205     NETWORK_MULTICAST_LIST_SIZE        * (_NETWORK_SIZEOF_MCLISTSIZE) + \
00206     NETWORK_PACKET_POOL_0__NUM_PACKETS * (NETWORK_PACKET_POOL_0__PACKET_SIZE + _NETWORK_SIZEOF_DCU) + \
00207     NETWORK_PACKET_POOL_1__NUM_PACKETS * (NETWORK_PACKET_POOL_1__PACKET_SIZE + _NETWORK_SIZEOF_DCU) + \
00208     NETWORK_PACKET_POOL_2__NUM_PACKETS * (NETWORK_PACKET_POOL_2__PACKET_SIZE + _NETWORK_SIZEOF_DCU) + \
00209     NETWORK_PACKET_POOL_3__NUM_PACKETS * (NETWORK_PACKET_POOL_3__PACKET_SIZE + _NETWORK_SIZEOF_DCU) + \
00210     NETWORK_PACKET_POOL_4__NUM_PACKETS * (NETWORK_PACKET_POOL_4__PACKET_SIZE + _NETWORK_SIZEOF_DCU) + \
00211     NETWORK_PACKET_POOL_5__NUM_PACKETS * (NETWORK_PACKET_POOL_5__PACKET_SIZE + _NETWORK_SIZEOF_DCU) + \
00212     _NETWORK_TOTAL_PACKET_COUNT        * _NETWORK_SIZEOF_PACKET_OVERHEAD     + \
00213     NETWORK_NUM_IFACES                 * _NETWORK_SIZEOF_IFACE        + \
00214     NETWORK_ROUTINGTABLE_SIZE          * _NETWORK_SIZEOF_ROUTINGTABLE + \
00215     NETWORK_ARP_NUM_TABLE_ENTRIES      * _NETWORK_SIZEOF_ARP_ENTRY    + \
00216     NETWORK_TCP_NUM_PORTS__SUPPORTED   * _NETWORK_SIZEOF_TCPPORT      + \
00217     NETWORK_UDP_NUM_PORTS__SUPPORTED   * _NETWORK_SIZEOF_UDPPORT      + \
00218     NETWORK_FRAG_TABLE_SIZE            * _NETWORK_SIZEOF_FRAG_ENTRY   + \
00219     NETWORK_NAT_NUM_ENTRIES            * _NETWORK_SIZEOF_NAT_ENTRY )    \
00220 
00221 
00222 typedef char NETWORK_COMPILE_TIME_ASSERT[NETWORK_MEMORY_POOL__SIZE - NETWORK_RAM_SIZE_ESTIMATE()];
00223 
00224 
00225 #endif //_NET_DECL_H_
00226