ESPHome 2026.3.0-dev
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();
35uint64_t millis_64();
37void delay(uint32_t ms);
38void delayMicroseconds(uint32_t us); // NOLINT(readability-identifier-naming)
39void __attribute__((noreturn)) arch_restart();
40void arch_init();
41void arch_feed_wdt();
43uint32_t arch_get_cpu_freq_hz();
44uint8_t progmem_read_byte(const uint8_t *addr);
45uint16_t progmem_read_uint16(const uint16_t *addr);
46
47} // 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:52
void arch_init()
Definition core.cpp:38
void IRAM_ATTR HOT delayMicroseconds(uint32_t us)
Definition core.cpp:29
void HOT yield()
Definition core.cpp:24
uint32_t arch_get_cpu_freq_hz()
Definition core.cpp:53
uint64_t HOT millis_64()
Definition core.cpp:26
uint32_t IRAM_ATTR HOT micros()
Definition core.cpp:28
void HOT arch_feed_wdt()
Definition core.cpp:48
uint16_t progmem_read_uint16(const uint16_t *addr)
Definition core.cpp:51
void HOT delay(uint32_t ms)
Definition core.cpp:27
uint32_t IRAM_ATTR HOT millis()
Definition core.cpp:25
void arch_restart()
Definition core.cpp:30
uint8_t progmem_read_byte(const uint8_t *addr)
Definition core.cpp:50