As I’ve already been saying here [url]http://wizwiki.net/forum/viewtopic.php?f=16&t=2016&start=10#p6285[/url] for the part about the transmit buffer you can directly use the registers of the two buffer pointers and then do the readings (RX buffer) or writing (TX buffer) randomly and then move the pointer of bytes read (RX buffer) or pointer of transmission (TX buffer) once you have finished using it.
This allows you to not use another buffer on MPU side to search a token in the receive buffer or compose a response in MPU memory but put it directly and then send it when it’s ready.
The C ++ examples for DNS and DHCP contain all the functions to read these registers just take a look at the functions of reading and writing a block of data to understand how they work then do the new functions optimized for your specific use.
I have implemented a soap web service that uses this “asynchronous” way, written for pic24 … but is a basic source ([url]http://www.firewing.info/pmwiki.php?n=FirewingUser.W5500[/url]) for this micro.
If I understand well, in that way I can read/write and send/receive any part of TX and RX buffer with manpulated socket pointers. But I have no chance to extend scope of TX pointer to RX memory, and I have no chance to transfer packet data directly from RX to TX memory.
Hi.
You can read from rx buffer a byte then Write this byte into tx buffer… With a block of bytes you must Read this block from rx buffer and then Write it into tx buffer. A direct move rx to tx not exist.
If we use W7500 as controller, then we can copy move rx to tx quickly. But we do not known how quilckly, beacuse W7500 host-eth inteface speed not documented.