lwip update

* The mdns responder has been reworked to lower stack and memory usage. This is
  a variation on the upstream code, it use malloc whereas the upstream code uses
  pools. The high stack usage of the mdns responder was problem for
  esp-open-rtos, so we might have to maintain the differences for now.

* Improved lwip core locking, and lock checking. Upstream improvements, that
  need some added support from esp-open-rtos specific code. More core lock is
  performed when calling from the esp-open-rtos code now, so a little safer. The
  checking is not enforced, but projects might see warning messages and might
  want to look into them.

* The esp-open-rtos lwip support has been sync'ed with the new freertos port
  included with lwip. There are still some minor differences.

* A few lwip timer bugs have been resolved. This might help resolve some issues.

* Plus it picks up all the other upstream fixes and improvements.

* The default lwip stack has been lowered from 768 words to 480 words,
  due to the reduced stack usage by the mdns responder.
This commit is contained in:
Our Air Quality 2018-01-24 14:56:24 +11:00
parent 5f8b3d43c7
commit 3c81f7d587
12 changed files with 345 additions and 185 deletions

View file

@ -546,10 +546,13 @@ bool sdk_wifi_station_dhcpc_start(void) {
sdk_info.sta_ipaddr.addr = 0;
sdk_info.sta_netmask.addr = 0;
sdk_info.sta_gw.addr = 0;
LOCK_TCPIP_CORE();
netif_set_addr(netif, &sdk_info.sta_ipaddr, &sdk_info.sta_netmask, &sdk_info.sta_gw);
if (dhcp_start(netif)) {
UNLOCK_TCPIP_CORE();
return false;
}
UNLOCK_TCPIP_CORE();
}
sdk_dhcpc_flag = DHCP_STARTED;
return true;
@ -561,9 +564,11 @@ bool sdk_wifi_station_dhcpc_stop(void) {
return false;
}
if (netif && sdk_dhcpc_flag == DHCP_STARTED) {
LOCK_TCPIP_CORE();
dhcp_stop(netif);
sdk_dhcpc_flag = DHCP_STOPPED;
UNLOCK_TCPIP_CORE();
}
sdk_dhcpc_flag = DHCP_STOPPED;
return true;
}
@ -616,8 +621,11 @@ bool sdk_wifi_set_ip_info(uint8_t if_index, struct ip_info *info) {
}
struct netif *netif = _get_netif(if_index);
if (netif)
if (netif) {
LOCK_TCPIP_CORE();
netif_set_addr(netif, &info->ip, &info->netmask, &info->gw);
UNLOCK_TCPIP_CORE();
}
return true;
}