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 12 11:23:03 2011 +0000
Revision:
0:19f5f51584de
Child:
4:cb3dc3361be5
Initial release (alpha quality)

Who changed what in which revision?

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