Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: EthernetInterface HttpServer TextLCD expatlib mbed-rpc mbed-rtos mbed Socket lwip-eth lwip-sys lwip
Fork of giken9_HTMLServer_Sample by
Functions | |
| void | lpc_mii_write_noblock (u32_t PhyReg, u32_t Value) |
| Write a value via the MII link (non-blocking) | |
| err_t | lpc_mii_write (u32_t PhyReg, u32_t Value) |
| Write a value via the MII link (blocking) | |
| u32_t | lpc_mii_is_busy (void) |
| Reads current MII link busy status. | |
| u32_t | lpc_mii_read_data (void) |
| Starts a read operation via the MII link (non-blocking) | |
| void | lpc_mii_read_noblock (u32_t PhyReg) |
| Read a value via the MII link (blocking) | |
| err_t | lpc_mii_read (u32_t PhyReg, u32_t *data) |
| Starts a read operation via the MII link (non-blocking) | |
| static void | lpc_rxqueue_pbuf (struct lpc_enetdata *lpc_enetif, struct pbuf *p) |
| Queues a pbuf into the RX descriptor list. | |
| s32_t | lpc_rx_queue (struct netif *netif) |
| Attempt to allocate and requeue a new pbuf for RX. | |
| static err_t | lpc_rx_setup (struct lpc_enetdata *lpc_enetif) |
| Sets up the RX descriptor ring buffers. | |
| static struct pbuf * | lpc_low_level_input (struct netif *netif) |
| Allocates a pbuf and returns the data from the incoming packet. | |
| void | lpc_enetif_input (struct netif *netif) |
| Attempt to read a packet from the EMAC interface. | |
| static s32_t | lpc_packet_addr_notsafe (void *addr) |
| Determine if the passed address is usable for the ethernet DMA controller. | |
Variables | |
| ETHMEM_SECTION struct lpc_enetdata | lpc_enetdata |
| LPC EMAC driver work data. | |
Function Documentation
| void lpc_enetif_input | ( | struct netif * | netif ) |
Attempt to read a packet from the EMAC interface.
- Parameters:
-
[in] netif the lwip network interface structure for this lpc_enetif
Definition at line 488 of file lpc17_emac.c.
| static struct pbuf* lpc_low_level_input | ( | struct netif * | netif ) | [static, read] |
Allocates a pbuf and returns the data from the incoming packet.
- Parameters:
-
[in] netif the lwip network interface structure for this lpc_enetif
- Returns:
- a pbuf filled with the received packet (including MAC header) NULL on memory error
Definition at line 348 of file lpc17_emac.c.
| u32_t lpc_mii_is_busy | ( | void | ) |
Reads current MII link busy status.
This function will return the current MII link busy status and is meant to be used with non-blocking functions for monitor PHY status such as connection state.
- Returns:
- !0 if the MII link is busy, otherwise 0
Definition at line 194 of file lpc17_emac.c.
| err_t lpc_mii_read | ( | u32_t | PhyReg, |
| u32_t * | data | ||
| ) |
Starts a read operation via the MII link (non-blocking)
This function will start a read operation on the MII link interface from a PHY or a connected device. The function will not block and the status mist be polled until complete. Once complete, the data can be read.
- Parameters:
-
[in] PhyReg PHY register to read from
Definition at line 217 of file lpc17_emac.c.
| u32_t lpc_mii_read_data | ( | void | ) |
Starts a read operation via the MII link (non-blocking)
This function returns the current value in the MII data register. It is meant to be used with the non-blocking oeprations. This value should only be read after a non-block read command has been issued and the MII status has been determined to be good.
- Returns:
- The current value in the MII value register
Definition at line 200 of file lpc17_emac.c.
| void lpc_mii_read_noblock | ( | u32_t | PhyReg ) |
Read a value via the MII link (blocking)
This function will read a value on the MII link interface from a PHY or a connected device. The function will block until complete.
- Parameters:
-
[in] PhyReg PHY register to read from [in] data Pointer to where to save data read via MII
- Returns:
- 0 if the read was successful, otherwise !0
Definition at line 209 of file lpc17_emac.c.
| err_t lpc_mii_write | ( | u32_t | PhyReg, |
| u32_t | Value | ||
| ) |
Write a value via the MII link (blocking)
This function will write a value on the MII link interface to a PHY or a connected device. The function will block until complete.
- Parameters:
-
[in] PhyReg PHY register to write to [in] Value Value to write
- Returns:
- 0 if the write was successful, otherwise !0
Definition at line 168 of file lpc17_emac.c.
| void lpc_mii_write_noblock | ( | u32_t | PhyReg, |
| u32_t | Value | ||
| ) |
Write a value via the MII link (non-blocking)
This function will write a value on the MII link interface to a PHY or a connected device. The function will return immediately without a status. Status needs to be polled later to determine if the write was successful.
- Parameters:
-
[in] PhyReg PHY register to write to [in] Value Value to write
Definition at line 160 of file lpc17_emac.c.
| static s32_t lpc_packet_addr_notsafe | ( | void * | addr ) | [static] |
Determine if the passed address is usable for the ethernet DMA controller.
- Parameters:
-
[in] addr Address of packet to check for DMA safe operation
- Returns:
- 1 if the packet address is not safe, otherwise 0
Sets up the TX descriptor ring buffers.
This function sets up the descriptor list used for transmit packets.
- Parameters:
-
[in] lpc_enetif Pointer to driver data structure
Free TX buffers that are complete
- Parameters:
-
[in] lpc_enetif Pointer to driver data structure [in] cidx EMAC current descriptor comsumer index
User call for freeingTX buffers that are complete
- Parameters:
-
[in] netif the lwip network interface structure for this lpc_enetif
Polls if an available TX descriptor is ready. Can be used to determine if the low level transmit function will block.
- Parameters:
-
[in] netif the lwip network interface structure for this lpc_enetif
- Returns:
- 0 if no descriptors are read, or >0
Low level output of a packet. Never call this from an interrupt context, as it may block until TX descriptors become available.
- Parameters:
-
[in] netif the lwip network interface structure for this lpc_enetif [in] p the MAC packet to send (e.g. IP packet including MAC addresses and type)
- Returns:
- ERR_OK if the packet could be sent or an err_t value if the packet couldn't be sent
LPC EMAC interrupt handler.
This function handles the transmit, receive, and error interrupt of the LPC177x_8x. This is meant to be used when NO_SYS=0.
Packet reception task
This task is called when a packet is received. It will pass the packet to the LWIP core.
- Parameters:
-
[in] pvParameters Not used yet
Transmit cleanup task
This task is called when a transmit interrupt occurs and reclaims the pbuf and descriptor used for the packet once the packet has been transferred.
- Parameters:
-
[in] pvParameters Not used yet
Low level init of the MAC and PHY.
- Parameters:
-
[in] netif Pointer to LWIP netif structure
This function is the ethernet packet send function. It calls etharp_output after checking link status.
- Parameters:
-
[in] netif the lwip network interface structure for this lpc_enetif [in] q Pointer to pbug to send [in] ipaddr IP address
- Returns:
- ERR_OK or error code
Should be called at the beginning of the program to set up the network interface.
This function should be passed as a parameter to netif_add().
- Parameters:
-
[in] netif the lwip network interface structure for this lpc_enetif
- Returns:
- ERR_OK if the loopif is initialized ERR_MEM if private data couldn't be allocated any other err_t on error
Definition at line 529 of file lpc17_emac.c.
| s32_t lpc_rx_queue | ( | struct netif * | netif ) |
Attempt to allocate and requeue a new pbuf for RX.
- Parameters:
-
[in] netif Pointer to the netif structure
- Returns:
- 1 if a packet was allocated and requeued, otherwise 0
Definition at line 286 of file lpc17_emac.c.
| static err_t lpc_rx_setup | ( | struct lpc_enetdata * | lpc_enetif ) | [static] |
Sets up the RX descriptor ring buffers.
This function sets up the descriptor list used for receive packets.
- Parameters:
-
[in] lpc_enetif Pointer to driver data structure
- Returns:
- Always returns ERR_OK
Definition at line 326 of file lpc17_emac.c.
| static void lpc_rxqueue_pbuf | ( | struct lpc_enetdata * | lpc_enetif, |
| struct pbuf * | p | ||
| ) | [static] |
Queues a pbuf into the RX descriptor list.
- Parameters:
-
[in] lpc_enetif Pointer to the drvier data structure [in] p Pointer to pbuf to queue
Definition at line 250 of file lpc17_emac.c.
Variable Documentation
LPC EMAC driver work data.
Definition at line 157 of file lpc17_emac.c.
Generated on Tue Jul 12 2022 23:04:34 by
1.7.2
