ESPHome 2025.7.0
Loading...
Searching...
No Matches
core.cpp
Go to the documentation of this file.
1#ifdef USE_RP2040
2
3#include "core.h"
5#include "esphome/core/hal.h"
7
8#include "hardware/watchdog.h"
9
10namespace esphome {
11
12void IRAM_ATTR HOT yield() { ::yield(); }
13uint32_t IRAM_ATTR HOT millis() { return ::millis(); }
14void IRAM_ATTR HOT delay(uint32_t ms) { ::delay(ms); }
15uint32_t IRAM_ATTR HOT micros() { return ::micros(); }
16void IRAM_ATTR HOT delayMicroseconds(uint32_t us) { delay_microseconds_safe(us); }
17void arch_restart() {
18 watchdog_reboot(0, 0, 10);
19 while (1) {
20 continue;
21 }
22}
23
24void arch_init() {
25#if USE_RP2040_WATCHDOG_TIMEOUT > 0
26 watchdog_enable(USE_RP2040_WATCHDOG_TIMEOUT, false);
27#endif
28}
29
30void IRAM_ATTR HOT arch_feed_wdt() { watchdog_update(); }
31
32uint8_t progmem_read_byte(const uint8_t *addr) {
33 return pgm_read_byte(addr); // NOLINT
34}
36uint32_t arch_get_cpu_freq_hz() { return RP2040::f_cpu(); }
37
38} // namespace esphome
39
40#endif // USE_RP2040
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:59
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:60
uint32_t IRAM_ATTR HOT micros()
Definition core.cpp:30
void IRAM_ATTR HOT delay_microseconds_safe(uint32_t us)
Delay for the given amount of microseconds, possibly yielding to other processes during the wait.
Definition helpers.cpp:618
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
unsigned long ulMainGetRunTimeCounterValue()