27#if defined(USE_BK72XX)
29#elif defined(USE_LIBRETINY_VARIANT_RTL8710B)
31#define IRAM_ATTR __attribute__((noinline, section(".image2.ram.text")))
36#define IRAM_ATTR __attribute__((noinline, section(".sram.text")))
51extern "C" void delay(
unsigned long ms);
52extern "C" unsigned long micros(
void);
53extern "C" unsigned long millis(
void);
70#if defined(USE_BK72XX)
77 __asm__
volatile(
"mrs %0, ipsr" :
"=r"(ipsr));
87#if defined(USE_RTL87XX) || defined(USE_LN882X)
88static_assert(configTICK_RATE_HZ == 1000,
"millis() fast path requires 1 kHz FreeRTOS tick");
91 return in_isr_context() ? xTaskGetTickCountFromISR() : xTaskGetTickCount();
93#elif defined(USE_BK72XX)
94static_assert(configTICK_RATE_HZ == 500,
"BK72xx millis() fast path assumes 500 Hz FreeRTOS tick");
struct @65::@66 __attribute__
Wake the main loop task from an ISR. ISR-safe.
unsigned long millis(void)
void delay(unsigned long ms)
unsigned long micros(void)
uint32_t platform_is_in_interrupt_context(void)
uint32_t lt_cpu_get_freq(void)
void delayMicroseconds(unsigned int us)
uint32_t lt_cpu_get_cycle_count(void)
uint32_t arch_get_cpu_cycle_count()
void IRAM_ATTR HOT delayMicroseconds(uint32_t us)
uint32_t arch_get_cpu_freq_hz()
uint32_t IRAM_ATTR HOT micros()
void HOT delay(uint32_t ms)
uint32_t IRAM_ATTR HOT millis()