[riot-commits] [RIOT-OS/RIOT] 642c48: cpu/esp8266: add built-in WiFi netdev driver

Sebastian Meiling s at mlng.net
Thu Jan 24 12:09:48 CET 2019


  Branch: refs/heads/master
  Home:   https://github.com/RIOT-OS/RIOT
  Commit: 642c48f85642e9fecf0d4630eff122687a21699a
      https://github.com/RIOT-OS/RIOT/commit/642c48f85642e9fecf0d4630eff122687a21699a
  Author: Gunar Schorcht <gunar at schorcht.net>
  Date:   2019-01-24 (Thu, 24 Jan 2019)

  Changed paths:
    A cpu/esp8266/esp-wifi/Makefile
    A cpu/esp8266/esp-wifi/doc.txt
    A cpu/esp8266/esp-wifi/esp_wifi_netdev.c
    A cpu/esp8266/esp-wifi/esp_wifi_netdev.h
    A cpu/esp8266/esp-wifi/esp_wifi_params.h

  Log Message:
  -----------
  cpu/esp8266: add built-in WiFi netdev driver


  Commit: 04de1e75aaf7dfb0c560f313a8cabda248264318
      https://github.com/RIOT-OS/RIOT/commit/04de1e75aaf7dfb0c560f313a8cabda248264318
  Author: Gunar Schorcht <gunar at schorcht.net>
  Date:   2019-01-24 (Thu, 24 Jan 2019)

  Changed paths:
    M cpu/esp8266/include/cpu_conf.h

  Log Message:
  -----------
  cpu/esp8266: stack sizes tuned for esp_wifi


  Commit: 664566ce70151f9ffca5400926cd21b4da09bb26
      https://github.com/RIOT-OS/RIOT/commit/664566ce70151f9ffca5400926cd21b4da09bb26
  Author: Gunar Schorcht <gunar at schorcht.net>
  Date:   2019-01-24 (Thu, 24 Jan 2019)

  Changed paths:
    M cpu/esp8266/Makefile
    M cpu/esp8266/Makefile.dep
    M cpu/esp8266/Makefile.include

  Log Message:
  -----------
  cpu/esp8266: makefile support for esp_wifi


  Commit: 21db1ce2246a9d3b5959ed36200f202f01de9c34
      https://github.com/RIOT-OS/RIOT/commit/21db1ce2246a9d3b5959ed36200f202f01de9c34
  Author: Gunar Schorcht <gunar at schorcht.net>
  Date:   2019-01-24 (Thu, 24 Jan 2019)

  Changed paths:
    M cpu/esp8266/doc.txt

  Log Message:
  -----------
  cpu/esp8266: doc extended for esp_wifi


  Commit: 698770ddb5693cea0a5423b75c33d4c4a96c2deb
      https://github.com/RIOT-OS/RIOT/commit/698770ddb5693cea0a5423b75c33d4c4a96c2deb
  Author: Gunar Schorcht <gunar at schorcht.net>
  Date:   2019-01-24 (Thu, 24 Jan 2019)

  Changed paths:
    M cpu/esp8266/esp-wifi/esp_wifi_netdev.c
    M cpu/esp8266/esp-wifi/esp_wifi_netdev.h

  Log Message:
  -----------
  cpu/esp8266: fix esp_wifi stability issues

Fixes sporadic blocking of the wifi thread in esp_wifi_recv_cb function under heavy network load conditions when frames are coming in faster than they can be processed. Since esp_wifi_recv_cb function is not executed in interrupt context, the msg_send function used for ISR event can block when the message queue is full. With this change esp_wifi can be flooded with icmpv6 packets of maximum size without any problems over hours.


  Commit: be3a2a4cb5713c627b91da5f6764526f9450ae1a
      https://github.com/RIOT-OS/RIOT/commit/be3a2a4cb5713c627b91da5f6764526f9450ae1a
  Author: Gunar Schorcht <gunar at schorcht.net>
  Date:   2019-01-24 (Thu, 24 Jan 2019)

  Changed paths:
    M cpu/esp8266/Makefile.dep
    M cpu/esp8266/esp-wifi/esp_wifi_netdev.c
    A cpu/esp8266/vendor/espressif/lwipopts.h

  Log Message:
  -----------
  cpu/esp8266: fix compilation problem of esp_wif


  Commit: d6664dafad2b7b9fa327b907f1b3acc55fbe975a
      https://github.com/RIOT-OS/RIOT/commit/d6664dafad2b7b9fa327b907f1b3acc55fbe975a
  Author: Gunar Schorcht <gunar at schorcht.net>
  Date:   2019-01-24 (Thu, 24 Jan 2019)

  Changed paths:
    M cpu/esp8266/esp-wifi/esp_wifi_netdev.c

  Log Message:
  -----------
  cpu/esp8266: esp_wifi dbg msg changed  to err msg


  Commit: f7998c2ad6305b1adf3ca69bc4c645352e3a887f
      https://github.com/RIOT-OS/RIOT/commit/f7998c2ad6305b1adf3ca69bc4c645352e3a887f
  Author: Gunar Schorcht <gunar at schorcht.net>
  Date:   2019-01-24 (Thu, 24 Jan 2019)

  Changed paths:
    M cpu/esp8266/esp-wifi/esp_wifi_netdev.c

  Log Message:
  -----------
  cpu/esp8266: automatic reconnect in esp_wifi


  Commit: 35a751c245d177acd7b9ec49401ba6fbc6941b8b
      https://github.com/RIOT-OS/RIOT/commit/35a751c245d177acd7b9ec49401ba6fbc6941b8b
  Author: Gunar Schorcht <gunar at schorcht.net>
  Date:   2019-01-24 (Thu, 24 Jan 2019)

  Changed paths:
    M cpu/esp8266/esp-wifi/esp_wifi_netdev.c

  Log Message:
  -----------
  cpu/esp8266: avoid send interruption in esp_wifi


  Commit: 0e46869e574d6a611ad674ab8bf4bbe74cb61425
      https://github.com/RIOT-OS/RIOT/commit/0e46869e574d6a611ad674ab8bf4bbe74cb61425
  Author: Gunar Schorcht <gunar at schorcht.net>
  Date:   2019-01-24 (Thu, 24 Jan 2019)

  Changed paths:
    M cpu/esp8266/esp-wifi/esp_wifi_netdev.c

  Log Message:
  -----------
  cpu/esp8266: react to "out of memory" in esp_wifi


  Commit: 107e196b1836c9b4041f2ef10904ba4357d9defa
      https://github.com/RIOT-OS/RIOT/commit/107e196b1836c9b4041f2ef10904ba4357d9defa
  Author: Gunar Schorcht <gunar at schorcht.net>
  Date:   2019-01-24 (Thu, 24 Jan 2019)

  Changed paths:
    M cpu/esp8266/esp-wifi/esp_wifi_netdev.c
    M cpu/esp8266/esp-wifi/esp_wifi_netdev.h

  Log Message:
  -----------
  cpu/esp8266: fix of maximum frame length in esp_wif

Since complete MAC frames are handled, ETHERNET_MAX_LEN has to be used instead of ETHERNET_DATA_LEN for receive buffer size and length check.


  Commit: 5a835e91ba2fbc2ea473d65b5e119552c308319d
      https://github.com/RIOT-OS/RIOT/commit/5a835e91ba2fbc2ea473d65b5e119552c308319d
  Author: Gunar Schorcht <gunar at schorcht.net>
  Date:   2019-01-24 (Thu, 24 Jan 2019)

  Changed paths:
    M cpu/esp8266/esp-wifi/esp_wifi_netdev.c

  Log Message:
  -----------
  cpu/esp8266: fix some comments in esp_wifi


  Commit: 88f6beeca2e828da17cdba27caf146c39957eb46
      https://github.com/RIOT-OS/RIOT/commit/88f6beeca2e828da17cdba27caf146c39957eb46
  Author: Gunar Schorcht <gunar at schorcht.net>
  Date:   2019-01-24 (Thu, 24 Jan 2019)

  Changed paths:
    M cpu/esp8266/Makefile.dep
    M cpu/esp8266/syscalls.c

  Log Message:
  -----------
  cpu/esp8266: use SDK mem management for esp_wifi

Some SDK interrupt service routines obviously use malloc/free in the interrupt context. Because the rmutex-based lock/unlock approach of the malloc/free function suite of the newlib does not work in the interrupt context, the SDK memory management functions MUST therefore be used. To use the same memory management functions in RIOT as in the SDK, the malloc/free function suite has to be replaced by wrapper functions.


  Commit: 3225aaa387147f54313fbb6bfb6843fcd6cc4a13
      https://github.com/RIOT-OS/RIOT/commit/3225aaa387147f54313fbb6bfb6843fcd6cc4a13
  Author: Gunar Schorcht <gunar at schorcht.net>
  Date:   2019-01-24 (Thu, 24 Jan 2019)

  Changed paths:
    M cpu/esp8266/esp-wifi/esp_wifi_netdev.c
    M cpu/esp8266/esp-wifi/esp_wifi_netdev.h

  Log Message:
  -----------
  cpu/esp8266: different conn states in esp_wifi

Different connection states defined to be able to realize a better connect/reconnect handling


  Commit: c5a9058ab9d6cd03f496d4ef0e08fdc19daae721
      https://github.com/RIOT-OS/RIOT/commit/c5a9058ab9d6cd03f496d4ef0e08fdc19daae721
  Author: Gunar Schorcht <gunar at schorcht.net>
  Date:   2019-01-24 (Thu, 24 Jan 2019)

  Changed paths:
    M cpu/esp8266/esp-wifi/esp_wifi_netdev.c

  Log Message:
  -----------
  cpu/esp8266: simplified error handling in esp_wifi

wifi_station_connect and wifi_stattion_disconnect never produce errors. Thus, error handling can be removed.


  Commit: 78e0aa2a773e5ee802f1cf2a3ac612620901e9ab
      https://github.com/RIOT-OS/RIOT/commit/78e0aa2a773e5ee802f1cf2a3ac612620901e9ab
  Author: Gunar Schorcht <gunar at schorcht.net>
  Date:   2019-01-24 (Thu, 24 Jan 2019)

  Changed paths:
    M cpu/esp8266/esp-wifi/esp_wifi_netdev.c

  Log Message:
  -----------
  cpu/esp8266: usage of _esp_wifi_recv_cb

Overriding ethernet_input function _esp_wifi_recv_cb is only used when the WiFi interface is in connected state.


  Commit: 96d0910d339ee314db2d94558f620820e21c46a2
      https://github.com/RIOT-OS/RIOT/commit/96d0910d339ee314db2d94558f620820e21c46a2
  Author: Gunar Schorcht <gunar at schorcht.net>
  Date:   2019-01-24 (Thu, 24 Jan 2019)

  Changed paths:
    M cpu/esp8266/esp-wifi/esp_wifi_netdev.c

  Log Message:
  -----------
  cpu/esp8266: avoid _esp_wifi_recv_cb during send

To avoid conflicts on receiption of a frame while sending, _esp_wifi_recv_cb should not executed while a frame is in transmission


  Commit: 87b87631a635d16d6a0742d70d1182eb95edab97
      https://github.com/RIOT-OS/RIOT/commit/87b87631a635d16d6a0742d70d1182eb95edab97
  Author: Gunar Schorcht <gunar at schorcht.net>
  Date:   2019-01-24 (Thu, 24 Jan 2019)

  Changed paths:
    M cpu/esp8266/esp-wifi/esp_wifi_netdev.c

  Log Message:
  -----------
  cpu/esp8266: functions that have to run in IRAM

Due to performance reasons _esp_wifi_recv_cb and _send have to be executed in IRAM.


  Commit: 04ee2ebe159875730017258903bd1a8c4b6ad3af
      https://github.com/RIOT-OS/RIOT/commit/04ee2ebe159875730017258903bd1a8c4b6ad3af
  Author: Gunar Schorcht <gunar at schorcht.net>
  Date:   2019-01-24 (Thu, 24 Jan 2019)

  Changed paths:
    M cpu/esp8266/esp-wifi/esp_wifi_netdev.c

  Log Message:
  -----------
  cpu/esp8266: automatic reconnect in esp_wifi

A reconnect timer is used to try to reconnect every 20 secons if WiFi interface is in disconnected or connecting state.


  Commit: e384f1e5020f48b20819c024afc2968ffa0739b2
      https://github.com/RIOT-OS/RIOT/commit/e384f1e5020f48b20819c024afc2968ffa0739b2
  Author: Gunar Schorcht <gunar at schorcht.net>
  Date:   2019-01-24 (Thu, 24 Jan 2019)

  Changed paths:
    M cpu/esp8266/esp-wifi/esp_wifi_netdev.c

  Log Message:
  -----------
  cpu/esp8266: send timeout handling in esp_wifi

A timeout was introduced if sending a frame takes to long time. In that case the WiFi interface disconnects and reconnects automatically to recover.


  Commit: 538aac00ad1316347f9faeb8f2af5f4bed1ed2e6
      https://github.com/RIOT-OS/RIOT/commit/538aac00ad1316347f9faeb8f2af5f4bed1ed2e6
  Author: Gunar Schorcht <gunar at schorcht.net>
  Date:   2019-01-24 (Thu, 24 Jan 2019)

  Changed paths:
    M cpu/esp8266/esp-wifi/esp_wifi_netdev.c

  Log Message:
  -----------
  cpu/esp8266: fix of allocated pbuf in esp_wifi


  Commit: 92f6c1a7c68d9a19342259c51f1df812e082348e
      https://github.com/RIOT-OS/RIOT/commit/92f6c1a7c68d9a19342259c51f1df812e082348e
  Author: Gunar Schorcht <gunar at schorcht.net>
  Date:   2019-01-24 (Thu, 24 Jan 2019)

  Changed paths:
    M cpu/esp8266/esp-wifi/esp_wifi_netdev.c

  Log Message:
  -----------
  cpu/esp8266: WiFi mode changed in esp_wifi

Although only the station interface is needed, the WiFi interface has to be used in SoftAP + Station mode. Otherwise the send function blocks sporadically. Since the SoftAP interface is not used, it is configured with a hidden SSID and a long beacon interval. Connections from other stations are not allowed.


  Commit: 0920bbb4fb55b03a9c231a401ee9c36244dd0cd1
      https://github.com/RIOT-OS/RIOT/commit/0920bbb4fb55b03a9c231a401ee9c36244dd0cd1
  Author: Gunar Schorcht <gunar at schorcht.net>
  Date:   2019-01-24 (Thu, 24 Jan 2019)

  Changed paths:
    M cpu/esp8266/esp-wifi/esp_wifi_netdev.c

  Log Message:
  -----------
  cpu/esp8266: log message on reconnect in esp_wifi


  Commit: 88c65aff0bcf324b38adf2b661d6c584f5b53eaf
      https://github.com/RIOT-OS/RIOT/commit/88c65aff0bcf324b38adf2b661d6c584f5b53eaf
  Author: Gunar Schorcht <gunar at schorcht.net>
  Date:   2019-01-24 (Thu, 24 Jan 2019)

  Changed paths:
    M cpu/esp8266/esp-wifi/esp_wifi_netdev.c
    M cpu/esp8266/esp-wifi/esp_wifi_netdev.h

  Log Message:
  -----------
  cpu/esp8266: allow _esp_wifi_recv_cb during send

Receiption of a frame in _esp_wifi_recv_cb while sending has no effect and should be possible to increases the performance.


  Commit: 49f06efd38ead041d2b050919c3983ab22b8db80
      https://github.com/RIOT-OS/RIOT/commit/49f06efd38ead041d2b050919c3983ab22b8db80
  Author: Gunar Schorcht <gunar at schorcht.net>
  Date:   2019-01-24 (Thu, 24 Jan 2019)

  Changed paths:
    M cpu/esp8266/esp-wifi/esp_wifi_netdev.c

  Log Message:
  -----------
  cpu/esp8266: fix pbuf length check in esp_wifi

When the size of a received frame is checked, always the total length should be used instead of the length of the first lwIP pbuf in the pbuf chain. Otherwise, the check that the length does not exceed ETHERNET_MAX_LEN will always be true since the maximum size of one lwIP pbuf in a pbuf chain is 512 bytes.


  Commit: e6cf33eb4cac2d2629ba0c452601d2ffe789a067
      https://github.com/RIOT-OS/RIOT/commit/e6cf33eb4cac2d2629ba0c452601d2ffe789a067
  Author: Gunar Schorcht <gunar at schorcht.net>
  Date:   2019-01-24 (Thu, 24 Jan 2019)

  Changed paths:
    M tests/lwip/Makefile
    M tests/lwip_sock_ip/Makefile
    M tests/lwip_sock_tcp/Makefile
    M tests/lwip_sock_udp/Makefile

  Log Message:
  -----------
  tests/lwip*: blacklist esp8266 boards


  Commit: 907b7617506325e04773744063f66d5b6a2629fd
      https://github.com/RIOT-OS/RIOT/commit/907b7617506325e04773744063f66d5b6a2629fd
  Author: Sebastian Meiling <s at mlng.net>
  Date:   2019-01-24 (Thu, 24 Jan 2019)

  Changed paths:
    M cpu/esp8266/Makefile
    M cpu/esp8266/Makefile.dep
    M cpu/esp8266/Makefile.include
    M cpu/esp8266/doc.txt
    A cpu/esp8266/esp-wifi/Makefile
    A cpu/esp8266/esp-wifi/doc.txt
    A cpu/esp8266/esp-wifi/esp_wifi_netdev.c
    A cpu/esp8266/esp-wifi/esp_wifi_netdev.h
    A cpu/esp8266/esp-wifi/esp_wifi_params.h
    M cpu/esp8266/include/cpu_conf.h
    M cpu/esp8266/syscalls.c
    A cpu/esp8266/vendor/espressif/lwipopts.h
    M tests/lwip/Makefile
    M tests/lwip_sock_ip/Makefile
    M tests/lwip_sock_tcp/Makefile
    M tests/lwip_sock_udp/Makefile

  Log Message:
  -----------
  Merge pull request #10792 from gschorcht/esp8266_esp_wifi_netdev

esp8266: esp_wifi netdev driver


Compare: https://github.com/RIOT-OS/RIOT/compare/a65fede8c4dd...907b76175063
      **NOTE:** GitHub Services has been marked for deprecation: https://developer.github.com/changes/2018-04-25-github-services-deprecation/

      We will provide an alternative path for the email notifications by January 31st, 2019.


More information about the commits mailing list