Jump to content
43oh

[BUG] CC3200 WiFiClient::write glitch w/ >100 byte strings


Recommended Posts

I'm posting this here for the 43oh and Energia community in case any of you encounter this issue.

 

I wrote a modified version of the SimpleWiFiWebServer example that compounded the HTML into longer strings, and discovered an odd bug in the way client socket writes are handled, at least when produced by a server listener (I've yet to confirm whether this bug exists on CC3200-originated outbound connections).  Any attempt to run WiFiClient.write() with a length > 100 results in the SimpleLinkWiFi API reporting that everything is OK, but a traffic analysis reveals several bytes get missed or possibly duplicated from a previous write request.

 

NOTE: WiFiClient.write() is run behind the scenes for any writes, including .print() and .println() type of stuff.

 

To mitigate this problem, I've produced a modified WiFiClient.cpp which breaks up long writes into 100-byte chunks.

WiFiClient-writefix-E14.zip

 

This WiFiClient.cpp goes into hardware\cc3200\libraries\WiFi

 

I have tested the original fault against a CC3100 w/ Tiva TM4C123 and was not able to reproduce the bug.  So I believe this only afflicts the CC3200 for now.

An Energia github issue has been opened - https://github.com/energia/Energia/issues/545 - and I believe @@energia is requesting comment from the TI CC3200 team on this bug.

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...