ESPHome 2025.6.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_FRAMEWORK_ESP_IDF)
7#include <esp_attr.h>
8#ifndef PROGMEM
9#define PROGMEM
10#endif
11
12#elif defined(USE_ESP32_FRAMEWORK_ARDUINO)
13
14#include <esp_attr.h>
15
16#ifndef PROGMEM
17#define PROGMEM
18#endif
19
20#elif defined(USE_ESP8266)
21
22#include <c_types.h>
23#ifndef PROGMEM
24#define PROGMEM ICACHE_RODATA_ATTR
25#endif
26
27#elif defined(USE_RP2040)
28
29#define IRAM_ATTR __attribute__((noinline, long_call, section(".time_critical")))
30#define PROGMEM
31
32#else
33
34#define IRAM_ATTR
35#define PROGMEM
36
37#endif
38
39namespace esphome {
40
41void yield();
42uint32_t millis();
43uint32_t micros();
44void delay(uint32_t ms);
45void delayMicroseconds(uint32_t us); // NOLINT(readability-identifier-naming)
46void __attribute__((noreturn)) arch_restart();
47void arch_init();
48void arch_feed_wdt();
50uint32_t arch_get_cpu_freq_hz();
51uint8_t progmem_read_byte(const uint8_t *addr);
52
53} // namespace esphome
struct @67::@68 __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:60
void arch_init()
Definition core.cpp:40
void IRAM_ATTR HOT delayMicroseconds(uint32_t us)
Definition core.cpp:31
void IRAM_ATTR HOT yield()
Definition core.cpp:27
uint32_t arch_get_cpu_freq_hz()
Definition core.cpp:64
uint32_t IRAM_ATTR HOT micros()
Definition core.cpp:30
void IRAM_ATTR HOT arch_feed_wdt()
Definition core.cpp:56
void IRAM_ATTR HOT delay(uint32_t ms)
Definition core.cpp:29
uint32_t IRAM_ATTR HOT millis()
Definition core.cpp:28
void arch_restart()
Definition core.cpp:32
uint8_t progmem_read_byte(const uint8_t *addr)
Definition core.cpp:58