Network Packet Transmission Overview
A device’s transmit complete interrupt signals μC/TCP-IP that another transmit packet is available to be transmitted or be queued for transmit by the device.
Figure 7-3 shows the relationship between a device’s transmit complete interrupt, its transmit complete ISR handling and μC/TCP-IP’s network interface transmit.
Figure 7-4 Device transmit complete interrupt and transmit ready signal
F7-4(1) The μC/TCP-IP’s Network Interface Transmit calls NetOS_Dev_TxRdyWait()
to wait for a specific network interface device semaphore to become ready and/or available to transmit a packet by waiting (with or without timeout) for the specific network interface’s Device Tx Ready Signal to be signaled.
F7-4(2) When a device is ready and/or available to transmit a packet, the device generates an interrupt which calls the device’s BSP-level ISR handler.
F7-4(3) The device’s BSP-level ISR handler determines which network interface number the specific device’s interrupt is signaling and then calls NetIF_ISR_Handler()
to handle the transmit complete interrupt.
F7-4(4) The specific device ISR handlers NetDev_ISR_Handler()
calls NetOS_Dev_TxRdySignal()
to signal the Device Tx Ready Signal for each packet or descriptor that is now available to transmit by the device.
F7-4(5) μC/TCP-IP’s Network Interface Transmit’s call to NetOS_Dev_TxRdyWait()
returns since the semaphore is made ready by each available device transmit complete that signals the Device Tx Ready Signal.
F7-4(6) The Network Interface Transmit then calls the specific network interface and device transmit handler functions to prepare the packet for transmission by the device.