The official mbed C/C SDK provides the software platform and libraries to build your applications.

Fork of mbed by mbed official

Revision:
85:024bf7f99721
Parent:
81:7d30d6019079
Child:
90:cb3d968589d8
--- a/TARGET_NUCLEO_F401RE/stm32f4xx_hal_eth.h	Mon May 19 18:14:09 2014 +0100
+++ b/TARGET_NUCLEO_F401RE/stm32f4xx_hal_eth.h	Wed Jun 11 15:14:05 2014 +0100
@@ -2,8 +2,8 @@
   ******************************************************************************
   * @file    stm32f4xx_hal_eth.h
   * @author  MCD Application Team
-  * @version V1.0.0
-  * @date    18-February-2014
+  * @version V1.1.0RC2
+  * @date    14-May-2014
   * @brief   Header file of ETH HAL module.
   ******************************************************************************
   * @attention
@@ -85,24 +85,24 @@
                                                            and the mode (half/full-duplex).
                                                            This parameter can be a value of @ref ETH_AutoNegotiation */
 
-  uint32_t             Speed;                     /*!< Sets the Ethernet speed: 10/100 Mbps
+  uint32_t             Speed;                     /*!< Sets the Ethernet speed: 10/100 Mbps.
                                                            This parameter can be a value of @ref ETH_Speed */
 
   uint32_t             DuplexMode;                /*!< Selects the MAC duplex mode: Half-Duplex or Full-Duplex mode
                                                            This parameter can be a value of @ref ETH_Duplex_Mode */
   
-  uint16_t             PhyAddress;                /*!< Ethernet PHY address
+  uint16_t             PhyAddress;                /*!< Ethernet PHY address.
                                                            This parameter must be a number between Min_Data = 0 and Max_Data = 32 */
   
   uint8_t             *MACAddr;                   /*!< MAC Address of used Hardware: must be pointer on an array of 6 bytes */
   
-  uint32_t             RxMode;                    /*!< Selects the Ethernet Rx mode: Polling mode, Interrupt mode
+  uint32_t             RxMode;                    /*!< Selects the Ethernet Rx mode: Polling mode, Interrupt mode.
                                                            This parameter can be a value of @ref ETH_Rx_Mode */
   
-  uint32_t             ChecksumMode;              /*!< Selects if the checksum is check by hardware or by software 
+  uint32_t             ChecksumMode;              /*!< Selects if the checksum is check by hardware or by software. 
                                                          This parameter can be a value of @ref ETH_Checksum_Mode */
   
-  uint32_t             MediaInterface    ;               /*!< Selects the media-independent interface or the reduced media-independent interface 
+  uint32_t             MediaInterface    ;               /*!< Selects the media-independent interface or the reduced media-independent interface. 
                                                          This parameter can be a value of @ref ETH_Media_Interface */
 
 } ETH_InitTypeDef;
@@ -124,78 +124,78 @@
                                                            When disabled, the MAC can send up to 16384 bytes.
                                                            This parameter can be a value of @ref ETH_Jabber */
 
-  uint32_t             InterFrameGap;             /*!< Selects the minimum IFG between frames during transmission
+  uint32_t             InterFrameGap;             /*!< Selects the minimum IFG between frames during transmission.
                                                            This parameter can be a value of @ref ETH_Inter_Frame_Gap */   
 
-  uint32_t             CarrierSense;              /*!< Selects or not the Carrier Sense
+  uint32_t             CarrierSense;              /*!< Selects or not the Carrier Sense.
                                                            This parameter can be a value of @ref ETH_Carrier_Sense */
 
-  uint32_t             ReceiveOwn;                /*!< Selects or not the ReceiveOwn
+  uint32_t             ReceiveOwn;                /*!< Selects or not the ReceiveOwn,
                                                            ReceiveOwn allows the reception of frames when the TX_EN signal is asserted
-                                                           in Half-Duplex mode
+                                                           in Half-Duplex mode.
                                                            This parameter can be a value of @ref ETH_Receive_Own */  
 
-  uint32_t             LoopbackMode;              /*!< Selects or not the internal MAC MII Loopback mode
+  uint32_t             LoopbackMode;              /*!< Selects or not the internal MAC MII Loopback mode.
                                                            This parameter can be a value of @ref ETH_Loop_Back_Mode */  
 
   uint32_t             ChecksumOffload;           /*!< Selects or not the IPv4 checksum checking for received frame payloads' TCP/UDP/ICMP headers.
                                                            This parameter can be a value of @ref ETH_Checksum_Offload */    
 
   uint32_t             RetryTransmission;         /*!< Selects or not the MAC attempt retries transmission, based on the settings of BL,
-                                                           when a collision occurs (Half-Duplex mode)
+                                                           when a collision occurs (Half-Duplex mode).
                                                            This parameter can be a value of @ref ETH_Retry_Transmission */
 
-  uint32_t             AutomaticPadCRCStrip;      /*!< Selects or not the Automatic MAC Pad/CRC Stripping
+  uint32_t             AutomaticPadCRCStrip;      /*!< Selects or not the Automatic MAC Pad/CRC Stripping.
                                                            This parameter can be a value of @ref ETH_Automatic_Pad_CRC_Strip */ 
 
-  uint32_t             BackOffLimit;              /*!< Selects the BackOff limit value
+  uint32_t             BackOffLimit;              /*!< Selects the BackOff limit value.
                                                            This parameter can be a value of @ref ETH_Back_Off_Limit */
 
-  uint32_t             DeferralCheck;             /*!< Selects or not the deferral check function (Half-Duplex mode)
+  uint32_t             DeferralCheck;             /*!< Selects or not the deferral check function (Half-Duplex mode).
                                                            This parameter can be a value of @ref ETH_Deferral_Check */                                                                                                        
 
-  uint32_t             ReceiveAll;                /*!< Selects or not all frames reception by the MAC (No filtering)
+  uint32_t             ReceiveAll;                /*!< Selects or not all frames reception by the MAC (No filtering).
                                                            This parameter can be a value of @ref ETH_Receive_All */   
 
-  uint32_t             SourceAddrFilter;          /*!< Selects the Source Address Filter mode                                                           
+  uint32_t             SourceAddrFilter;          /*!< Selects the Source Address Filter mode.                                                           
                                                            This parameter can be a value of @ref ETH_Source_Addr_Filter */                  
 
   uint32_t             PassControlFrames;         /*!< Sets the forwarding mode of the control frames (including unicast and multicast PAUSE frames)                                                          
                                                            This parameter can be a value of @ref ETH_Pass_Control_Frames */ 
 
-  uint32_t             BroadcastFramesReception;  /*!< Selects or not the reception of Broadcast Frames
+  uint32_t             BroadcastFramesReception;  /*!< Selects or not the reception of Broadcast Frames.
                                                            This parameter can be a value of @ref ETH_Broadcast_Frames_Reception */
 
-  uint32_t             DestinationAddrFilter;     /*!< Sets the destination filter mode for both unicast and multicast frames
+  uint32_t             DestinationAddrFilter;     /*!< Sets the destination filter mode for both unicast and multicast frames.
                                                            This parameter can be a value of @ref ETH_Destination_Addr_Filter */ 
 
   uint32_t             PromiscuousMode;           /*!< Selects or not the Promiscuous Mode
                                                            This parameter can be a value of @ref ETH_Promiscuous_Mode */
 
-  uint32_t             MulticastFramesFilter;     /*!< Selects the Multicast Frames filter mode: None/HashTableFilter/PerfectFilter/PerfectHashTableFilter
+  uint32_t             MulticastFramesFilter;     /*!< Selects the Multicast Frames filter mode: None/HashTableFilter/PerfectFilter/PerfectHashTableFilter.
                                                            This parameter can be a value of @ref ETH_Multicast_Frames_Filter */ 
 
-  uint32_t             UnicastFramesFilter;       /*!< Selects the Unicast Frames filter mode: HashTableFilter/PerfectFilter/PerfectHashTableFilter
+  uint32_t             UnicastFramesFilter;       /*!< Selects the Unicast Frames filter mode: HashTableFilter/PerfectFilter/PerfectHashTableFilter.
                                                            This parameter can be a value of @ref ETH_Unicast_Frames_Filter */ 
 
-  uint32_t             HashTableHigh;             /*!< This field holds the higher 32 bits of Hash table
+  uint32_t             HashTableHigh;             /*!< This field holds the higher 32 bits of Hash table.
                                                            This parameter must be a number between Min_Data = 0x0 and Max_Data = 0xFFFFFFFF */
 
-  uint32_t             HashTableLow;              /*!< This field holds the lower 32 bits of Hash table
+  uint32_t             HashTableLow;              /*!< This field holds the lower 32 bits of Hash table.
                                                            This parameter must be a number between Min_Data = 0x0 and Max_Data = 0xFFFFFFFF  */    
 
-  uint32_t             PauseTime;                 /*!< This field holds the value to be used in the Pause Time field in the transmit control frame 
+  uint32_t             PauseTime;                 /*!< This field holds the value to be used in the Pause Time field in the transmit control frame. 
                                                            This parameter must be a number between Min_Data = 0x0 and Max_Data = 0xFFFF */
 
-  uint32_t             ZeroQuantaPause;           /*!< Selects or not the automatic generation of Zero-Quanta Pause Control frames
+  uint32_t             ZeroQuantaPause;           /*!< Selects or not the automatic generation of Zero-Quanta Pause Control frames.
                                                            This parameter can be a value of @ref ETH_Zero_Quanta_Pause */  
 
   uint32_t             PauseLowThreshold;         /*!< This field configures the threshold of the PAUSE to be checked for
-                                                           automatic retransmission of PAUSE Frame
+                                                           automatic retransmission of PAUSE Frame.
                                                            This parameter can be a value of @ref ETH_Pause_Low_Threshold */
                                                            
   uint32_t             UnicastPauseFrameDetect;   /*!< Selects or not the MAC detection of the Pause frames (with MAC Address0
-                                                           unicast address and unique multicast address)
+                                                           unicast address and unique multicast address).
                                                            This parameter can be a value of @ref ETH_Unicast_Pause_Frame_Detect */  
 
   uint32_t             ReceiveFlowControl;        /*!< Enables or disables the MAC to decode the received Pause frame and
@@ -207,7 +207,7 @@
                                                            This parameter can be a value of @ref ETH_Transmit_Flow_Control */     
 
   uint32_t             VLANTagComparison;         /*!< Selects the 12-bit VLAN identifier or the complete 16-bit VLAN tag for
-                                                           comparison and filtering
+                                                           comparison and filtering.
                                                            This parameter can be a value of @ref ETH_VLAN_Tag_Comparison */ 
 
   uint32_t             VLANTagIdentifier;         /*!< Holds the VLAN tag identifier for receive frames */
@@ -221,54 +221,54 @@
 
 typedef struct
 {
- uint32_t              DropTCPIPChecksumErrorFrame; /*!< Selects or not the Dropping of TCP/IP Checksum Error Frames
+ uint32_t              DropTCPIPChecksumErrorFrame; /*!< Selects or not the Dropping of TCP/IP Checksum Error Frames.
                                                              This parameter can be a value of @ref ETH_Drop_TCP_IP_Checksum_Error_Frame */ 
 
-  uint32_t             ReceiveStoreForward;         /*!< Enables or disables the Receive store and forward mode
+  uint32_t             ReceiveStoreForward;         /*!< Enables or disables the Receive store and forward mode.
                                                              This parameter can be a value of @ref ETH_Receive_Store_Forward */ 
 
-  uint32_t             FlushReceivedFrame;          /*!< Enables or disables the flushing of received frames
+  uint32_t             FlushReceivedFrame;          /*!< Enables or disables the flushing of received frames.
                                                              This parameter can be a value of @ref ETH_Flush_Received_Frame */ 
 
-  uint32_t             TransmitStoreForward;        /*!< Enables or disables Transmit store and forward mode
+  uint32_t             TransmitStoreForward;        /*!< Enables or disables Transmit store and forward mode.
                                                              This parameter can be a value of @ref ETH_Transmit_Store_Forward */ 
 
-  uint32_t             TransmitThresholdControl;    /*!< Selects or not the Transmit Threshold Control
+  uint32_t             TransmitThresholdControl;    /*!< Selects or not the Transmit Threshold Control.
                                                              This parameter can be a value of @ref ETH_Transmit_Threshold_Control */
 
-  uint32_t             ForwardErrorFrames;          /*!< Selects or not the forward to the DMA of erroneous frames
+  uint32_t             ForwardErrorFrames;          /*!< Selects or not the forward to the DMA of erroneous frames.
                                                              This parameter can be a value of @ref ETH_Forward_Error_Frames */
 
   uint32_t             ForwardUndersizedGoodFrames; /*!< Enables or disables the Rx FIFO to forward Undersized frames (frames with no Error
                                                              and length less than 64 bytes) including pad-bytes and CRC)
                                                              This parameter can be a value of @ref ETH_Forward_Undersized_Good_Frames */
 
-  uint32_t             ReceiveThresholdControl;     /*!< Selects the threshold level of the Receive FIFO
+  uint32_t             ReceiveThresholdControl;     /*!< Selects the threshold level of the Receive FIFO.
                                                              This parameter can be a value of @ref ETH_Receive_Threshold_Control */
 
   uint32_t             SecondFrameOperate;          /*!< Selects or not the Operate on second frame mode, which allows the DMA to process a second
                                                              frame of Transmit data even before obtaining the status for the first frame.
                                                              This parameter can be a value of @ref ETH_Second_Frame_Operate */
 
-  uint32_t             AddressAlignedBeats;         /*!< Enables or disables the Address Aligned Beats
+  uint32_t             AddressAlignedBeats;         /*!< Enables or disables the Address Aligned Beats.
                                                              This parameter can be a value of @ref ETH_Address_Aligned_Beats */
 
-  uint32_t             FixedBurst;                  /*!< Enables or disables the AHB Master interface fixed burst transfers
+  uint32_t             FixedBurst;                  /*!< Enables or disables the AHB Master interface fixed burst transfers.
                                                              This parameter can be a value of @ref ETH_Fixed_Burst */
                        
-  uint32_t             RxDMABurstLength;            /*!< Indicates the maximum number of beats to be transferred in one Rx DMA transaction
+  uint32_t             RxDMABurstLength;            /*!< Indicates the maximum number of beats to be transferred in one Rx DMA transaction.
                                                              This parameter can be a value of @ref ETH_Rx_DMA_Burst_Length */ 
 
-  uint32_t             TxDMABurstLength;            /*!< Indicates the maximum number of beats to be transferred in one Tx DMA transaction
+  uint32_t             TxDMABurstLength;            /*!< Indicates the maximum number of beats to be transferred in one Tx DMA transaction.
                                                              This parameter can be a value of @ref ETH_Tx_DMA_Burst_Length */
   
-  uint32_t             EnhancedDescriptorFormat;    /*!< Enables the enhanced descriptor format
+  uint32_t             EnhancedDescriptorFormat;    /*!< Enables the enhanced descriptor format.
                                                              This parameter can be a value of @ref ETH_DMA_Enhanced_descriptor_format */
 
   uint32_t             DescriptorSkipLength;        /*!< Specifies the number of word to skip between two unchained descriptors (Ring mode)
                                                              This parameter must be a number between Min_Data = 0 and Max_Data = 32 */                                                             
 
-  uint32_t             DMAArbitration;              /*!< Selects the DMA Tx/Rx arbitration
+  uint32_t             DMAArbitration;              /*!< Selects the DMA Tx/Rx arbitration.
                                                              This parameter can be a value of @ref ETH_DMA_Arbitration */  
 } ETH_DMAInitTypeDef;
 
@@ -1290,9 +1290,9 @@
                                            ((LENGTH) == ETH_TXDMABURSTLENGTH_4XPBL_64BEAT) || \
                                            ((LENGTH) == ETH_TXDMABURSTLENGTH_4XPBL_128BEAT))
 
-/** 
-  * @brief  ETH_DMA_Enhanced_descriptor_format 
-  */ 
+/** @defgroup ETH_DMA_Enhanced_descriptor_format 
+  * @{
+  */  
 #define ETH_DMAENHANCEDDESCRIPTOR_ENABLE              ((uint32_t)0x00000080)
 #define ETH_DMAENHANCEDDESCRIPTOR_DISABLE             ((uint32_t)0x00000000)
 
@@ -1700,6 +1700,12 @@
 
 /* Exported macro ------------------------------------------------------------*/
 
+/** @brief Reset ETH handle state
+  * @param  __HANDLE__: specifies the ETH handle.
+  * @retval None
+  */
+#define __HAL_ETH_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_ETH_STATE_RESET)
+
 /** 
   * @brief  Checks whether the specified ETHERNET DMA Tx Desc flag is set or not.
   * @param  __HANDLE__: ETH Handle