[an error occurred while processing this directive]
|
wr_ptr = eth_read_ptr (TX_WR_PTR(s), SHADOW_TXWR_PTR(s));
rd_ptr = eth_read_ptr (TX_RD_PTR(s), SHADOW_TXRD_PTR(s));
//Считываются оба нуля
// Calculate free buffer size to send
if (wr_ptr >= rd_ptr)
size = SSIZE[s] - (wr_ptr - rd_ptr);
else
size = SSIZE[s] - (0 - rd_ptr + wr_ptr);
send_ptr = (SBUFBASEADDRESS[s] + (UINT)(wr_ptr & SMASK[s]));
// Calculate pointer to copy data pointer
write_data(s, buf, send_ptr,len); // Copy data
wr_ptr += len; // Update tx_wr_ptr
//становится равным длине пакета
eth_write_ptr (TX_WR_PTR(s), wr_ptr);
eth_write_byte(COMMAND(s), CSEND);
E-mail: info@telesys.ru