mirror of
https://github.com/esphome/esphome.git
synced 2026-09-15 00:58:40 +00:00
b5a2d58b80f3bf79350a0a46f933aab3762de8d4
Revert the inline hal.h approach — millis() must remain IRAM_ATTR because Wiegand and ZyAura call it from IRAM_ATTR ISR handlers on all platforms including ESP32. Use xPortInIsrContext() to dispatch to xTaskGetTickCountFromISR() from ISR or xTaskGetTickCount() from task context, satisfying the FreeRTOS API contract. ISR check is [[unlikely]] so the hot path stays fast. Benchmarked: 686 ns -> 361 ns (1.9x faster). Correctness verified.
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
604 MiB
Languages
C++
55.8%
Python
43.6%
C
0.3%
JavaScript
0.2%
