修改socket链接不稳定
Fork of WIZnetInterface by
Revision 30:d4ed4f463f3d, committed 2016-11-16
- 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
diff -r c91884bd2713 -r d4ed4f463f3d Socket/DNSClient.cpp --- 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);
diff -r c91884bd2713 -r d4ed4f463f3d arch/int/W7500x_toe.cpp --- 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);
diff -r c91884bd2713 -r d4ed4f463f3d arch/int/W7500x_toe.h --- 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