mirror of
https://github.com/esphome/esphome.git
synced 2026-02-28 01:44:20 -07:00
3f74726f001bd47f146aceda3988a16b0e416d27
Extend the ESP32 lwip_select() replacement (direct rcvevent reads + FreeRTOS task notifications) to all LibreTiny platforms (bk72xx, rtl87xx, ln882h). All LibreTiny platforms have LwIP >= 2.1.3 with lwip_socket_dbg_get_socket() and FreeRTOS task notifications. The thread safety argument is actually stronger on LibreTiny since all platforms are single-core ARM Cortex-M, eliminating cross-core memory ordering concerns entirely. Introduces USE_LWIP_FAST_SELECT feature define (set from Python codegen for ESP32 and LibreTiny) replacing per-platform USE_ESP32 guards. The only platform-specific difference is FreeRTOS header paths (freertos/FreeRTOS.h on ESP-IDF vs FreeRTOS.h on LibreTiny). Expected impact on LibreTiny (same as ESP32): - ~17x faster socket polling (direct rcvevent vs lwip_select) - ~3.5 KB flash savings (dead code elimination of lwip_select) - ~56 bytes static RAM savings (fd_set members excluded) - ~200-300 bytes heap savings (UDP wake socket eliminated)
Description
ESPHome is a system to control your ESP8266/ESP32 by simple yet powerful configuration files and control them remotely through Home Automation systems.
Readme
Multiple Licenses
516 MiB
Languages
C++
64.1%
Python
35.5%
C
0.3%
