[core] Keep esp8266 millis/delay out-of-line for #15662 compatibility

This commit is contained in:
J. Nick Koston
2026-04-24 12:02:57 -05:00
parent d3bae21d13
commit a1e3ec7118
2 changed files with 6 additions and 3 deletions
+3 -1
View File
@@ -15,7 +15,9 @@ extern "C" {
namespace esphome {
// yield(), delay(), micros(), millis(), millis_64() inlined in hal.h.
// yield(), micros(), millis_64() inlined in hal.h.
uint32_t IRAM_ATTR HOT millis() { return ::millis(); }
void HOT delay(uint32_t ms) { ::delay(ms); }
void IRAM_ATTR HOT delayMicroseconds(uint32_t us) { delay_microseconds_safe(us); }
void arch_restart() {
system_restart();
+3 -2
View File
@@ -142,12 +142,13 @@ __attribute__((always_inline)) inline uint64_t millis_64() {
}
#elif defined(USE_ESP8266) || defined(USE_LIBRETINY) || defined(USE_RP2040)
__attribute__((always_inline)) inline void yield() { ::yield(); }
__attribute__((always_inline)) inline void delay(uint32_t ms) { ::delay(ms); }
__attribute__((always_inline)) inline uint32_t micros() { return static_cast<uint32_t>(::micros()); }
#if defined(USE_ESP8266)
__attribute__((always_inline)) inline uint32_t millis() { return static_cast<uint32_t>(::millis()); }
void delay(uint32_t ms);
uint32_t millis();
__attribute__((always_inline)) inline uint64_t millis_64() { return Millis64Impl::compute(millis()); }
#elif defined(USE_LIBRETINY)
__attribute__((always_inline)) inline void delay(uint32_t ms) { ::delay(ms); }
// Per-variant millis() fast path — matches MillisInternal::get().
#if defined(USE_RTL87XX) || defined(USE_LN882X)
static_assert(configTICK_RATE_HZ == 1000, "millis() fast path requires 1 kHz FreeRTOS tick");