18#include "esp_heap_caps.h"
30#define portBASE_TYPE int
31#define portUBASE_TYPE unsigned portBASE_TYPE
32#define portTICK_TYPE uint32_t
33#define portSTACK_TYPE uint8_t
35#define portMAX_DELAY 0xFFFFFFFFUL
37#define portMUX_TYPE mutex_t
38#define portMUX_INITIALIZE mutex_init
39#define portMUX_INITIALIZER_UNLOCKED MUTEX_INIT
41#define portYIELD thread_yield_higher
42#define portYIELD_FROM_ISR thread_yield_higher
44#define portENTER_CRITICAL vTaskEnterCritical
45#define portEXIT_CRITICAL vTaskExitCritical
46#define portENTER_CRITICAL_SAFE vTaskEnterCritical
47#define portEXIT_CRITICAL_SAFE vTaskExitCritical
48#define portENTER_CRITICAL_ISR vTaskEnterCritical
49#define portEXIT_CRITICAL_ISR vTaskExitCritical
50#define portENTER_CRITICAL_NESTED irq_disable
51#define portEXIT_CRITICAL_NESTED irq_restore
53#define portSET_INTERRUPT_MASK_FROM_ISR xPortSetInterruptMaskFromISR
54#define portCLEAR_INTERRUPT_MASK_FROM_ISR vPortClearInterruptMaskFromISR
56#define errCOULD_NOT_ALLOCATE_REQUIRED_MEMORY ( -1 )
58#if defined(CPU_FAM_ESP32) || defined(CPU_FAM_ESP32S3)
60#define portNUM_PROCESSORS 2
61#define xPortGetCoreID() PRO_CPU_NUM
62#define vPortYield portYIELD
66#define portNUM_PROCESSORS 1
67#define xPortGetCoreID() PRO_CPU_NUM
68#define vPortYield portYIELD
72extern void vTaskEnterCritical(portMUX_TYPE *mux);
73extern void vTaskExitCritical(portMUX_TYPE *mux);
75bool xPortCanYield(
void);
Mutex for thread synchronization.