ESPHome 2026.2.3
Loading...
Searching...
No Matches
hal.h
Go to the documentation of this file.
1#pragma once
2#include <string>
3#include <cstdint>
4#include "gpio.h"
5
6#if defined(USE_ESP32)
7#include <esp_attr.h>
8#ifndef PROGMEM
9#define PROGMEM
10#endif
11
12#elif defined(USE_ESP8266)
13
14#include <c_types.h>
15#ifndef PROGMEM
16#define PROGMEM ICACHE_RODATA_ATTR
17#endif
18
19#elif defined(USE_RP2040)
20
21#define IRAM_ATTR __attribute__((noinline, long_call, section(".time_critical")))
22#define PROGMEM
23
24#else
25
26#define IRAM_ATTR
27#define PROGMEM
28
29#endif
30
31namespace esphome {
32
33void yield();
36void delay(uint32_t ms);
37void delayMicroseconds(uint32_t us); // NOLINT(readability-identifier-naming)
38void __attribute__((noreturn)) arch_restart();
39void arch_init();
40void arch_feed_wdt();
42uint32_t arch_get_cpu_freq_hz();
43uint8_t progmem_read_byte(const uint8_t *addr);
44
45} // namespace esphome
struct @65::@66 __attribute__
Providing packet encoding functions for exchanging data with a remote host.
Definition a01nyub.cpp:7
uint32_t arch_get_cpu_cycle_count()
Definition core.cpp:50
void arch_init()
Definition core.cpp:37
void IRAM_ATTR HOT delayMicroseconds(uint32_t us)
Definition core.cpp:28
void IRAM_ATTR HOT yield()
Definition core.cpp:24
uint32_t arch_get_cpu_freq_hz()
Definition core.cpp:51
uint32_t IRAM_ATTR HOT micros()
Definition core.cpp:27
void IRAM_ATTR HOT arch_feed_wdt()
Definition core.cpp:47
void IRAM_ATTR HOT delay(uint32_t ms)
Definition core.cpp:26
uint32_t IRAM_ATTR HOT millis()
Definition core.cpp:25
void arch_restart()
Definition core.cpp:29
uint8_t progmem_read_byte(const uint8_t *addr)
Definition core.cpp:49