This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TM4C129ENCPDT: ethernet static ip not working with tivaware / lwip

Part Number: TM4C129ENCPDT

I have discovered the same issue(i think).

Is this proposed fixed the correct fix?

The SDK is over a year old and no patch has been released for this issue. 

is this correct?

  • Hello John,

    Our understanding is that fix is correct, we haven't had seen customers with issues with it. If you find it is not working for you, then we can try and help further.

    And yes, no patch has been released for that issue yet.
  • Ok, I marked resolved too soon.

    it seems that this workaround affects other areas of our application.

    I had to back it out because the web server hangs when processing a post.

    Our code is based on the stellarisware S2E example project. We ported to Tiva and thought we were done. During final testing we discovered the static IP address issue that only occurs after a power cycle.

    We are able to change from DHCP to static without a power cycle. Once the reboot occurs our app hangs trying to get an ip address here

    // Wait for an IP address to be assigned to the board before we try to initiate any connections.
      while(lwIPLocalIPAddrGet() == 0 || lwIPLocalIPAddrGet() == 0xFFFFFFFF)
      {  
        MAP_SysCtlSleep();
      }
      
      if((g_sParameters.ucFlags & CONFIG_FLAG_STATICIP) == CONFIG_FLAG_STATICIP)
      {
        // Get g_sParameters.ulPrimaryDns and g_sParameters.ulAlternateDns and set them in DNS API
        struct ip_addr primary;
        struct ip_addr alternate;
        primary.addr = g_sParameters.ulPrimaryDns;
        alternate.addr = g_sParameters.ulAlternateDns;
        dns_setserver(0, &primary);
        dns_setserver(1, &alternate);
      }
      else
      {
        // Get DNS servers from DNS API and set g_sParameters.ulPrimaryDns and g_sParameters.ulAlternateDns
        g_sParameters.ulPrimaryDns = dns_getserver(0).addr;
        g_sParameters.ulAlternateDns = dns_getserver(1).addr;
      }
      

    The workaround seemed to resolve this issue when tested on developer PC. But our integration test immediately failed performing a reset to factory default which posts to the web server and waits for the response.The response times out so the test fails. I have not dug further yet. 

    I think its time TI contribute to the resolution of this problem. 

  • Hello John,

    Understood, I am going to involve our more Ethernet-savvy team member with this thread.