22#if defined(ESP_PLATFORM)
23#include "esp_rom_sys.h"
24#include "freertos/FreeRTOS.h"
25#include "freertos/task.h"
26#elif defined(HF_RTOS_FREERTOS)
28#elif defined(USE_HAL_DRIVER)
29extern "C" void HAL_Delay(uint32_t Delay);
30#elif defined(HF_RTOS_THREADX) || defined(HF_RTOS_NONE)
51 const char* format, va_list args)
noexcept {
53 vsnprintf(buf,
sizeof(buf), format, args);
56 case 0: log.Error(tag,
"%s", buf);
break;
57 case 1: log.Warn(tag,
"%s", buf);
break;
58 case 2: log.Info(tag,
"%s", buf);
break;
59 default: log.Debug(tag,
"%s", buf);
break;
77inline void DelayMs(uint32_t ms)
noexcept {
78#if defined(ESP_PLATFORM)
82 TickType_t ticks = pdMS_TO_TICKS(ms);
87#elif defined(HF_RTOS_FREERTOS) || (!defined(USE_HAL_DRIVER) && (defined(HF_RTOS_THREADX) || defined(HF_RTOS_NONE)))
89 const uint16_t chunk =
90 (ms > 60000U) ?
static_cast<uint16_t
>(60000U)
91 :
static_cast<uint16_t
>(ms);
95#elif defined(USE_HAL_DRIVER)
99 for (uint32_t m = 0; m < ms; ++m) {
100 for (uint32_t spin = 40000U; spin > 0U; --spin) {
101 __asm__
volatile(
"" :::
"memory");
122#if defined(ESP_PLATFORM)
123 esp_rom_delay_us(us);
126 for (uint32_t i = 0; i < us; ++i) {
127 for (uint32_t spin = 40U; spin > 0U; --spin) {
128 __asm__
volatile(
"" :::
"memory");
Advanced logging system with formatting capabilities.
static Logger & GetInstance() noexcept
Get singleton instance.
Definition Logger.cpp:91
Definition HandlerCommon.h:34
void RouteLogToLogger(int level, const char *tag, const char *format, va_list args) noexcept
Route a driver log message to the Logger singleton.
Definition HandlerCommon.h:50
void DelayUs(uint32_t us) noexcept
Microsecond delay with automatic fallback to RTOS delay for large values.
Definition HandlerCommon.h:117
void DelayMs(uint32_t ms) noexcept
RTOS-aware millisecond delay.
Definition HandlerCommon.h:77