ESPHome 2026.3.0-dev
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/timer.h"
9#include "hardware/watchdog.h"
10
11namespace esphome {
12
13void HOT yield() { ::yield(); }
14uint64_t millis_64() { return micros_to_millis<uint64_t>(time_us_64()); }
15uint32_t HOT millis() { return micros_to_millis(time_us_64()); }
16void HOT delay(uint32_t ms) { ::delay(ms); }
17uint32_t HOT micros() { return ::micros(); }
18void HOT delayMicroseconds(uint32_t us) { delay_microseconds_safe(us); }
19void arch_restart() {
20 watchdog_reboot(0, 0, 10);
21 while (1) {
22 continue;
23 }
24}
25
26void arch_init() {
27#if USE_RP2040_WATCHDOG_TIMEOUT > 0
28 watchdog_enable(USE_RP2040_WATCHDOG_TIMEOUT, false);
29#endif
30}
31
32void HOT arch_feed_wdt() { watchdog_update(); }
33
34uint8_t progmem_read_byte(const uint8_t *addr) {
35 return pgm_read_byte(addr); // NOLINT
36}
37uint16_t progmem_read_uint16(const uint16_t *addr) { return *addr; }
39uint32_t arch_get_cpu_freq_hz() { return RP2040::f_cpu(); }
40
41} // namespace esphome
42
43#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: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 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:843
void HOT arch_feed_wdt()
Definition core.cpp:48
uint16_t progmem_read_uint16(const uint16_t *addr)
Definition core.cpp:51
constexpr ESPHOME_ALWAYS_INLINE ReturnT micros_to_millis(uint64_t us)
Convert a 64-bit microsecond count to milliseconds without calling __udivdi3 (software 64-bit divide,...
Definition helpers.h:625
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
unsigned long ulMainGetRunTimeCounterValue()