#define STACK_SIZE 1024 // 栈的大小,实际计算方式为1024 * 栈宽度,ESP32栈的宽度为8位字节
static TaskHandle_t xDTaskHandle = NULL; // 动态任务句柄
static TaskHandle_t xStaticTaskHandle = NULL; // 静态任务句柄
static TaskHandle_t xTaskHandle_Core0 = NULL; // 在核心0 创建的静态任务句柄
static TaskHandle_t xStaticTaskHandle_Core1 = NULL; // 在核心1 创建的静态任务句柄
static StaticTask_t xTaskBuffer; // 静态任务控制块
static StaticTask_t xTaskBuffer_Core1; // 在核心1 运行的静态任务控制块
static StackType_t uxTaskStack[STACK_SIZE]; // 静态任务栈空间
static StackType_t uxTaskStack_Core1[STACK_SIZE]; // 在核心1运行的 静态任务栈空间
void task(void *params){
while(1){
delay(10);
}
}
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Hello, ESP32-S3!");
// 创建动态任务
xTaskCreate(task, "D-Task", STACK_SIZE, NULL, 1, &xDTaskHandle);
// 创建静态任务
xStaticTaskHandle = xTaskCreateStatic(task, "S-Task", STACK_SIZE, NULL, 2, uxTaskStack, &xTaskBuffer);
// 在核心0 创建动态任务
xTaskCreatePinnedToCore(task, "D-Task-C0", STACK_SIZE, NULL, 3, &xTaskHandle_Core0, 0);
// 在核心1 创建静态任务
xStaticTaskHandle_Core1 = xTaskCreateStaticPinnedToCore(task, "S-Task-C1", STACK_SIZE, NULL, 4, uxTaskStack, &xTaskBuffer, 1);
}
void loop() {
// put your main code here, to run repeatedly:
delay(10); // this speeds up the simulation
}