...
Anchor
NetDev_Rx()
is called by μC/TCP-IP’s Receive task after the Interrupt Service Routine handler has signaled to the Receive task that a receive event has occurred. NetDev_Rx()
requires that the device driver return a pointer to the data area containing the received data and return the size of the received frame via pointer.NetDev_Rx()
should perform the following actions:
...
1041733 1041733 Check for receive errors, if applicable. If an error should occur during reception, the driver should set*size
to 0 and*p_data
to(CPU_INT08U *)0
and return. Additional steps may be necessary depending on the device being serviced.Anchor 1041734 1041734 - For Ethernet devices, get the size of the received frame and subtract four bytes for the CRC. It's recommended to first check the frame size to ensure that it is larger than four bytes before performing the subtraction, to ensure that an underflow does not occur. Set
*size
to the adjusted frame size.anchor 1041735 1041735 Get a new data buffer area by callingNetBuf_GetDataPtr()
. If memory is not available, an error will be returned and the device driver should set*size
to 0 and*p_data
to(CPU_INT08U *)0
.Anchor 1041736 1041736 If an error does not occur while getting a new data area,*p_data
must be set to the address of the data area.Anchor 1041737 1041737- Set
perr
toNET_DEV_ERR_NONE
and return from the receive function. Otherwise, setperr
to an appropriate network device error code.