7#include <freertos/FreeRTOS.h>
8#include <freertos/task.h>
9#include <esp_idf_version.h>
10#include <esp_ota_ops.h>
11#include <esp_task_wdt.h>
15#include <hal/cpu_hal.h>
20#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(5, 1, 0)
21#include <esp_clk_tree.h>
29void IRAM_ATTR HOT
yield() { vPortYield(); }
30uint32_t IRAM_ATTR HOT
millis() {
return (uint32_t) (esp_timer_get_time() / 1000ULL); }
31void IRAM_ATTR HOT
delay(uint32_t ms) { vTaskDelay(ms / portTICK_PERIOD_MS); }
32uint32_t IRAM_ATTR HOT
micros() {
return (uint32_t) esp_timer_get_time(); }
44#if defined(USE_ESP_IDF)
45 esp_task_wdt_add(
nullptr);
47#elif defined(USE_ARDUINO)
50#if defined(CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU0) && CONFIG_ARDUINO_RUNNING_CORE == 0
53#if defined(CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU1) && CONFIG_ARDUINO_RUNNING_CORE == 1
60 esp_ota_img_states_t
state;
61 const esp_partition_t *running = esp_ota_get_running_partition();
62 if (esp_ota_get_state_partition(running, &
state) == ESP_OK) {
63 if (
state == ESP_OTA_IMG_PENDING_VERIFY) {
64 esp_ota_mark_app_valid_cancel_rollback();
75#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(5, 1, 0)
76 esp_clk_tree_src_get_freq_hz(SOC_MOD_CLK_CPU, ESP_CLK_TREE_SRC_FREQ_PRECISION_CACHED, &freq);
78 rtc_cpu_freq_config_t config;
79 rtc_clk_cpu_freq_get_config(&config);
80 freq = config.freq_mhz * 1000000U;
82#elif defined(USE_ARDUINO)
83 freq = ESP.getCpuFreqMHz() * 1000000;
100#if CONFIG_FREERTOS_UNICORE
Providing packet encoding functions for exchanging data with a remote host.
uint32_t arch_get_cpu_cycle_count()
void IRAM_ATTR HOT delayMicroseconds(uint32_t us)
void IRAM_ATTR HOT yield()
uint32_t arch_get_cpu_freq_hz()
TaskHandle_t loop_task_handle
uint32_t IRAM_ATTR HOT micros()
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.
void IRAM_ATTR HOT arch_feed_wdt()
void IRAM_ATTR HOT delay(uint32_t ms)
uint32_t IRAM_ATTR HOT millis()
void loop_task(void *pv_params)
uint8_t progmem_read_byte(const uint8_t *addr)