During normal operation of the Ethernet
module, normal and transmit interrupts are read, descriptors polled, the DMA is suspended
(if the DMA does not own descriptors), and values of current host transmitter or receiver
descriptor pointers are read for debugging.
For normal operation, complete the following
steps:
- For normal transmit and receive interrupts, read the interrupt status.
Then, poll the descriptors, reading the status of the descriptor owned by the Host (either
transmit or receive).
- Set appropriate values for the descriptors, making sure that transmit
and receive descriptors are owned by the DMA to resume the transmission and reception of
data.
- If the descriptors are not owned by the DMA (or no descriptor is
available), the DMA goes into SUSPEND state. The transmission or reception can be resumed
by freeing the descriptors and writing the descriptor tail pointer to Tx/Rx tail pointer
register (DMA_CH[n]_TxDesc_Tail_Pointer and DMA_CH[n]_RxDesc_Tail_Pointer).
- The values of the current host transmitter or receiver descriptor
address pointer can be read for the debug process (DMA_CH[n]_Current_App_TxDesc and
DMA_CH[n]_Current_App_RxDesc).
- The values of the current host transmit buffer address pointer and
receive buffer address pointer can be read for the debug process (Register
DMA_CH[n]_Current_App_TxBuffer and DMA_CH[n]_Current_App_RxBuffer).