修改socket链接不稳定

Fork of WIZnetInterface by WIZnet

Files at this revision

API Documentation at this revision

Comitter:
846354866
Date:
Wed Nov 16 05:23:28 2016 +0000
Parent:
29:c91884bd2713
Commit message:
web iot for espressif(no chinese) version0.2

Changed in this revision

Socket/DNSClient.cpp Show annotated file Show diff for this revision Revisions of this file
arch/int/W7500x_toe.cpp Show annotated file Show diff for this revision Revisions of this file
arch/int/W7500x_toe.h Show annotated file Show diff for this revision Revisions of this file
--- a/Socket/DNSClient.cpp	Tue Nov 17 06:35:55 2015 +0000
+++ b/Socket/DNSClient.cpp	Wed Nov 16 05:23:28 2016 +0000
@@ -113,7 +113,7 @@
     m_udp->init();
     m_udp->set_blocking(false);
     Endpoint server;
-    server.set_address("8.8.8.8", 53); // DNS
+    server.set_address("223.5.5.5", 53); // DNS
     m_udp->bind(rand()&0x7fff);
     uint8_t buf[256];                
     int size = query(buf, sizeof(buf), hostname);
--- a/arch/int/W7500x_toe.cpp	Tue Nov 17 06:35:55 2015 +0000
+++ b/arch/int/W7500x_toe.cpp	Wed Nov 16 05:23:28 2016 +0000
@@ -266,8 +266,10 @@
 	uint16_t ptr = sreg<uint16_t>(socket, Sn_TX_WR);
 	uint32_t sn_tx_base = W7500x_TXMEM_BASE + (uint32_t)(socket<<18); 
 
-	for(int i=0; i<len; i++)
+	for(int i=0; i<len; i++){
 		*(volatile uint8_t *)(sn_tx_base + ((ptr+i)&0xFFFF)) = str[i];
+		//wait(0.001f);
+	}
 
 	sreg<uint16_t>(socket, Sn_TX_WR, ptr + len);
 	scmd(socket, SEND);
@@ -305,8 +307,10 @@
 	uint16_t ptr = sreg<uint16_t>(socket, Sn_RX_RD);
 	uint32_t sn_rx_base = W7500x_RXMEM_BASE + (uint32_t)(socket<<18); 
 
-	for(int i=0; i<len; i++)
+	for(int i=0; i<len; i++){
 		buf[i] = *(volatile uint8_t *)(sn_rx_base + ((ptr+i)&0xFFFF));
+		//wait(0.001f);
+	}
 
 	sreg<uint16_t>(socket, Sn_RX_RD, ptr + len);
 	scmd(socket, RECV);
--- a/arch/int/W7500x_toe.h	Tue Nov 17 06:35:55 2015 +0000
+++ b/arch/int/W7500x_toe.h	Wed Nov 16 05:23:28 2016 +0000
@@ -239,6 +239,7 @@
 		*/
         for(int i = 0; i < sizeof(buf); i++) { //  Little Endian to Big Endian
         	*(volatile uint8_t *)(W7500x_WZTOE_BASE + (uint32_t)((cb<<16)+addr)+i) = buf[i];
+        	wait(0.0001f);
 		}
     }
 
@@ -252,6 +253,7 @@
         uint8_t buf[sizeof(T)] = {0,};
         for(int i = 0; i < sizeof(buf); i++) { //  Little Endian to Big Endian
         	buf[i] = *(volatile uint8_t *)(W7500x_WZTOE_BASE + (uint32_t)((cb<<16)+addr)+i);
+        	wait(0.0001f);
 		}
         /*
 		for(int i = 0; i < sizeof(buf)/2; i++) { // Big Endian to Little Endian