Rewrite from scratch a TCP/IP stack for mbed. So far the following parts are usable: Drivers: - EMAC driver (from CMSIS 2.0) Protocols: - Ethernet protocol - ARP over ethernet for IPv4 - IPv4 over Ethernet - ICMPv4 over IPv4 - UDPv4 over IPv4 APIs: - Sockets for UDPv4 The structure of this stack is designed to be very modular. Each protocol can register one or more protocol to handle its payload, and in each protocol, an API can be hooked (like Sockets for example). This is an early release.

Committer:
Benoit
Date:
Sun Jun 26 09:56:31 2011 +0000
Revision:
7:8e12f7357b9f
Parent:
5:3cd83fcb1467
Added IPv4 global broadcast address to processed frames inside IPv4 layer.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Benoit 4:cb3dc3361be5 1 /* @cond */
Benoit 0:19f5f51584de 2 /***********************************************************************//**
Benoit 0:19f5f51584de 3 * @file lpc17xx_pinsel.h
Benoit 0:19f5f51584de 4 * @brief Contains all macro definitions and function prototypes
Benoit 0:19f5f51584de 5 * support for Pin connect block firmware library on LPC17xx
Benoit 0:19f5f51584de 6 * @version 2.0
Benoit 0:19f5f51584de 7 * @date 21. May. 2010
Benoit 0:19f5f51584de 8 * @author NXP MCU SW Application Team
Benoit 0:19f5f51584de 9 **************************************************************************
Benoit 0:19f5f51584de 10 * Software that is described herein is for illustrative purposes only
Benoit 0:19f5f51584de 11 * which provides customers with programming information regarding the
Benoit 0:19f5f51584de 12 * products. This software is supplied "AS IS" without any warranties.
Benoit 0:19f5f51584de 13 * NXP Semiconductors assumes no responsibility or liability for the
Benoit 0:19f5f51584de 14 * use of the software, conveys no license or title under any patent,
Benoit 0:19f5f51584de 15 * copyright, or mask work right to the product. NXP Semiconductors
Benoit 0:19f5f51584de 16 * reserves the right to make changes in the software without
Benoit 0:19f5f51584de 17 * notification. NXP Semiconductors also make no representation or
Benoit 0:19f5f51584de 18 * warranty that such application will be suitable for the specified
Benoit 0:19f5f51584de 19 * use without further testing or modification.
Benoit 0:19f5f51584de 20 **************************************************************************/
Benoit 0:19f5f51584de 21
Benoit 0:19f5f51584de 22 /* Peripheral group ----------------------------------------------------------- */
Benoit 0:19f5f51584de 23 /** @defgroup PINSEL PINSEL
Benoit 0:19f5f51584de 24 * @ingroup LPC1700CMSIS_FwLib_Drivers
Benoit 0:19f5f51584de 25 * @{
Benoit 0:19f5f51584de 26 */
Benoit 0:19f5f51584de 27
Benoit 0:19f5f51584de 28 #ifndef LPC17XX_PINSEL_H_
Benoit 0:19f5f51584de 29 #define LPC17XX_PINSEL_H_
Benoit 0:19f5f51584de 30
Benoit 0:19f5f51584de 31 /* Includes ------------------------------------------------------------------- */
Benoit 0:19f5f51584de 32 #include "lpc17xx.h"
Benoit 0:19f5f51584de 33 #include "lpc_types.h"
Benoit 0:19f5f51584de 34
Benoit 0:19f5f51584de 35 #ifdef __cplusplus
Benoit 0:19f5f51584de 36 extern "C"
Benoit 0:19f5f51584de 37 {
Benoit 0:19f5f51584de 38 #endif
Benoit 0:19f5f51584de 39
Benoit 0:19f5f51584de 40 /* Public Macros -------------------------------------------------------------- */
Benoit 0:19f5f51584de 41 /** @defgroup PINSEL_Public_Macros PINSEL Public Macros
Benoit 0:19f5f51584de 42 * @{
Benoit 0:19f5f51584de 43 */
Benoit 0:19f5f51584de 44
Benoit 0:19f5f51584de 45 /*********************************************************************//**
Benoit 0:19f5f51584de 46 *!< Macros define for PORT Selection
Benoit 0:19f5f51584de 47 ***********************************************************************/
Benoit 0:19f5f51584de 48 #define PINSEL_PORT_0 ((0)) /**< PORT 0*/
Benoit 0:19f5f51584de 49 #define PINSEL_PORT_1 ((1)) /**< PORT 1*/
Benoit 0:19f5f51584de 50 #define PINSEL_PORT_2 ((2)) /**< PORT 2*/
Benoit 0:19f5f51584de 51 #define PINSEL_PORT_3 ((3)) /**< PORT 3*/
Benoit 0:19f5f51584de 52 #define PINSEL_PORT_4 ((4)) /**< PORT 4*/
Benoit 0:19f5f51584de 53
Benoit 0:19f5f51584de 54 /***********************************************************************
Benoit 0:19f5f51584de 55 * Macros define for Pin Function selection
Benoit 0:19f5f51584de 56 **********************************************************************/
Benoit 0:19f5f51584de 57 #define PINSEL_FUNC_0 ((0)) /**< default function*/
Benoit 0:19f5f51584de 58 #define PINSEL_FUNC_1 ((1)) /**< first alternate function*/
Benoit 0:19f5f51584de 59 #define PINSEL_FUNC_2 ((2)) /**< second alternate function*/
Benoit 0:19f5f51584de 60 #define PINSEL_FUNC_3 ((3)) /**< third or reserved alternate function*/
Benoit 0:19f5f51584de 61
Benoit 0:19f5f51584de 62 /***********************************************************************
Benoit 0:19f5f51584de 63 * Macros define for Pin Number of Port
Benoit 0:19f5f51584de 64 **********************************************************************/
Benoit 0:19f5f51584de 65 #define PINSEL_PIN_0 ((0)) /**< Pin 0 */
Benoit 0:19f5f51584de 66 #define PINSEL_PIN_1 ((1)) /**< Pin 1 */
Benoit 0:19f5f51584de 67 #define PINSEL_PIN_2 ((2)) /**< Pin 2 */
Benoit 0:19f5f51584de 68 #define PINSEL_PIN_3 ((3)) /**< Pin 3 */
Benoit 0:19f5f51584de 69 #define PINSEL_PIN_4 ((4)) /**< Pin 4 */
Benoit 0:19f5f51584de 70 #define PINSEL_PIN_5 ((5)) /**< Pin 5 */
Benoit 0:19f5f51584de 71 #define PINSEL_PIN_6 ((6)) /**< Pin 6 */
Benoit 0:19f5f51584de 72 #define PINSEL_PIN_7 ((7)) /**< Pin 7 */
Benoit 0:19f5f51584de 73 #define PINSEL_PIN_8 ((8)) /**< Pin 8 */
Benoit 0:19f5f51584de 74 #define PINSEL_PIN_9 ((9)) /**< Pin 9 */
Benoit 0:19f5f51584de 75 #define PINSEL_PIN_10 ((10)) /**< Pin 10 */
Benoit 0:19f5f51584de 76 #define PINSEL_PIN_11 ((11)) /**< Pin 11 */
Benoit 0:19f5f51584de 77 #define PINSEL_PIN_12 ((12)) /**< Pin 12 */
Benoit 0:19f5f51584de 78 #define PINSEL_PIN_13 ((13)) /**< Pin 13 */
Benoit 0:19f5f51584de 79 #define PINSEL_PIN_14 ((14)) /**< Pin 14 */
Benoit 0:19f5f51584de 80 #define PINSEL_PIN_15 ((15)) /**< Pin 15 */
Benoit 0:19f5f51584de 81 #define PINSEL_PIN_16 ((16)) /**< Pin 16 */
Benoit 0:19f5f51584de 82 #define PINSEL_PIN_17 ((17)) /**< Pin 17 */
Benoit 0:19f5f51584de 83 #define PINSEL_PIN_18 ((18)) /**< Pin 18 */
Benoit 0:19f5f51584de 84 #define PINSEL_PIN_19 ((19)) /**< Pin 19 */
Benoit 0:19f5f51584de 85 #define PINSEL_PIN_20 ((20)) /**< Pin 20 */
Benoit 0:19f5f51584de 86 #define PINSEL_PIN_21 ((21)) /**< Pin 21 */
Benoit 0:19f5f51584de 87 #define PINSEL_PIN_22 ((22)) /**< Pin 22 */
Benoit 0:19f5f51584de 88 #define PINSEL_PIN_23 ((23)) /**< Pin 23 */
Benoit 0:19f5f51584de 89 #define PINSEL_PIN_24 ((24)) /**< Pin 24 */
Benoit 0:19f5f51584de 90 #define PINSEL_PIN_25 ((25)) /**< Pin 25 */
Benoit 0:19f5f51584de 91 #define PINSEL_PIN_26 ((26)) /**< Pin 26 */
Benoit 0:19f5f51584de 92 #define PINSEL_PIN_27 ((27)) /**< Pin 27 */
Benoit 0:19f5f51584de 93 #define PINSEL_PIN_28 ((28)) /**< Pin 28 */
Benoit 0:19f5f51584de 94 #define PINSEL_PIN_29 ((29)) /**< Pin 29 */
Benoit 0:19f5f51584de 95 #define PINSEL_PIN_30 ((30)) /**< Pin 30 */
Benoit 0:19f5f51584de 96 #define PINSEL_PIN_31 ((31)) /**< Pin 31 */
Benoit 0:19f5f51584de 97
Benoit 0:19f5f51584de 98 /***********************************************************************
Benoit 0:19f5f51584de 99 * Macros define for Pin mode
Benoit 0:19f5f51584de 100 **********************************************************************/
Benoit 0:19f5f51584de 101 #define PINSEL_PINMODE_PULLUP ((0)) /**< Internal pull-up resistor*/
Benoit 0:19f5f51584de 102 #define PINSEL_PINMODE_TRISTATE ((2)) /**< Tri-state */
Benoit 0:19f5f51584de 103 #define PINSEL_PINMODE_PULLDOWN ((3)) /**< Internal pull-down resistor */
Benoit 0:19f5f51584de 104
Benoit 0:19f5f51584de 105 /***********************************************************************
Benoit 0:19f5f51584de 106 * Macros define for Pin mode (normal/open drain)
Benoit 0:19f5f51584de 107 **********************************************************************/
Benoit 0:19f5f51584de 108 #define PINSEL_PINMODE_NORMAL ((0)) /**< Pin is in the normal (not open drain) mode.*/
Benoit 0:19f5f51584de 109 #define PINSEL_PINMODE_OPENDRAIN ((1)) /**< Pin is in the open drain mode */
Benoit 0:19f5f51584de 110
Benoit 0:19f5f51584de 111 /***********************************************************************
Benoit 0:19f5f51584de 112 * Macros define for I2C mode
Benoit 0:19f5f51584de 113 ***********************************************************************/
Benoit 0:19f5f51584de 114 #define PINSEL_I2C_Normal_Mode ((0)) /**< The standard drive mode */
Benoit 0:19f5f51584de 115 #define PINSEL_I2C_Fast_Mode ((1)) /**< Fast Mode Plus drive mode */
Benoit 0:19f5f51584de 116
Benoit 0:19f5f51584de 117 /**
Benoit 0:19f5f51584de 118 * @}
Benoit 0:19f5f51584de 119 */
Benoit 0:19f5f51584de 120
Benoit 0:19f5f51584de 121 /* Private Macros ------------------------------------------------------------- */
Benoit 0:19f5f51584de 122 /** @defgroup PINSEL_Private_Macros PINSEL Private Macros
Benoit 0:19f5f51584de 123 * @{
Benoit 0:19f5f51584de 124 */
Benoit 0:19f5f51584de 125
Benoit 0:19f5f51584de 126 /* Pin selection define */
Benoit 0:19f5f51584de 127 /* I2C Pin Configuration register bit description */
Benoit 0:19f5f51584de 128 #define PINSEL_I2CPADCFG_SDADRV0 _BIT(0) /**< Drive mode control for the SDA0 pin, P0.27 */
Benoit 0:19f5f51584de 129 #define PINSEL_I2CPADCFG_SDAI2C0 _BIT(1) /**< I2C mode control for the SDA0 pin, P0.27 */
Benoit 0:19f5f51584de 130 #define PINSEL_I2CPADCFG_SCLDRV0 _BIT(2) /**< Drive mode control for the SCL0 pin, P0.28 */
Benoit 0:19f5f51584de 131 #define PINSEL_I2CPADCFG_SCLI2C0 _BIT(3) /**< I2C mode control for the SCL0 pin, P0.28 */
Benoit 0:19f5f51584de 132
Benoit 0:19f5f51584de 133 /**
Benoit 0:19f5f51584de 134 * @}
Benoit 0:19f5f51584de 135 */
Benoit 0:19f5f51584de 136
Benoit 0:19f5f51584de 137
Benoit 0:19f5f51584de 138 /* Public Types --------------------------------------------------------------- */
Benoit 0:19f5f51584de 139 /** @defgroup PINSEL_Public_Types PINSEL Public Types
Benoit 0:19f5f51584de 140 * @{
Benoit 0:19f5f51584de 141 */
Benoit 0:19f5f51584de 142
Benoit 0:19f5f51584de 143 /** @brief Pin configuration structure */
Benoit 0:19f5f51584de 144 typedef struct
Benoit 0:19f5f51584de 145 {
Benoit 0:19f5f51584de 146 uint8_t Portnum; /**< Port Number, should be PINSEL_PORT_x,
Benoit 0:19f5f51584de 147 where x should be in range from 0 to 4 */
Benoit 0:19f5f51584de 148 uint8_t Pinnum; /**< Pin Number, should be PINSEL_PIN_x,
Benoit 0:19f5f51584de 149 where x should be in range from 0 to 31 */
Benoit 0:19f5f51584de 150 uint8_t Funcnum; /**< Function Number, should be PINSEL_FUNC_x,
Benoit 0:19f5f51584de 151 where x should be in range from 0 to 3 */
Benoit 0:19f5f51584de 152 uint8_t Pinmode; /**< Pin Mode, should be:
Benoit 0:19f5f51584de 153 - PINSEL_PINMODE_PULLUP: Internal pull-up resistor
Benoit 0:19f5f51584de 154 - PINSEL_PINMODE_TRISTATE: Tri-state
Benoit 0:19f5f51584de 155 - PINSEL_PINMODE_PULLDOWN: Internal pull-down resistor */
Benoit 0:19f5f51584de 156 uint8_t OpenDrain; /**< OpenDrain mode, should be:
Benoit 0:19f5f51584de 157 - PINSEL_PINMODE_NORMAL: Pin is in the normal (not open drain) mode
Benoit 0:19f5f51584de 158 - PINSEL_PINMODE_OPENDRAIN: Pin is in the open drain mode */
Benoit 0:19f5f51584de 159 } PINSEL_CFG_Type;
Benoit 0:19f5f51584de 160
Benoit 0:19f5f51584de 161 /**
Benoit 0:19f5f51584de 162 * @}
Benoit 0:19f5f51584de 163 */
Benoit 0:19f5f51584de 164
Benoit 0:19f5f51584de 165
Benoit 0:19f5f51584de 166 /* Public Functions ----------------------------------------------------------- */
Benoit 0:19f5f51584de 167 /** @defgroup PINSEL_Public_Functions PINSEL Public Functions
Benoit 0:19f5f51584de 168 * @{
Benoit 0:19f5f51584de 169 */
Benoit 0:19f5f51584de 170
Benoit 0:19f5f51584de 171 void PINSEL_ConfigPin(PINSEL_CFG_Type *PinCfg);
Benoit 0:19f5f51584de 172 void PINSEL_ConfigTraceFunc (FunctionalState NewState);
Benoit 0:19f5f51584de 173 void PINSEL_SetI2C0Pins(uint8_t i2cPinMode, FunctionalState filterSlewRateEnable);
Benoit 0:19f5f51584de 174
Benoit 0:19f5f51584de 175
Benoit 0:19f5f51584de 176 /**
Benoit 0:19f5f51584de 177 * @}
Benoit 0:19f5f51584de 178 */
Benoit 0:19f5f51584de 179
Benoit 0:19f5f51584de 180
Benoit 0:19f5f51584de 181 #ifdef __cplusplus
Benoit 0:19f5f51584de 182 }
Benoit 0:19f5f51584de 183 #endif
Benoit 0:19f5f51584de 184
Benoit 0:19f5f51584de 185 #endif /* LPC17XX_PINSEL_H_ */
Benoit 0:19f5f51584de 186
Benoit 0:19f5f51584de 187 /**
Benoit 0:19f5f51584de 188 * @}
Benoit 0:19f5f51584de 189 */
Benoit 0:19f5f51584de 190
Benoit 0:19f5f51584de 191 /* --------------------------------- End Of File ------------------------------ */
Benoit 0:19f5f51584de 192
Benoit 5:3cd83fcb1467 193 /* @endcond */