环境:Arduino
芯片:ESP32
一、ESP32的双核逻辑
1.ESP32 是有两个核心的,如果我们不进行配置,它的执行逻辑是:核心0,核心1这样来回切换进行行执行代码的。这样就会造成一定的资源浪费,因为有一个核心始终在待机状态。在CPU利用率不高时,我们还感觉不出来。如果需要高利用率时,就能感觉出来了。
2.所以需要进行双核配置,开启双核执行,让每个核心执行不同的任务。效率更高,速度更快,发挥出ESP32应有的性能
二、开启双核
1.头文件
#include "freertos/FreeRTOS.h"//双核心需要包含的头文件
#include "freertos/task.h"
2.初始化
1.setup函数
void setup(){
xTaskCreatePinnedToCore(task1,"task1",20480,NULL,1,NULL,1);
//参数说明:任务1,执行的函数名,任务的大小,传参,优先级,NULL,需要使用的核心
}
2.执行任务的函数
void task1(void* param){
while(1){
delay(450);
}
}
3. 其他的代码
vTaskDelete(NULL);//结束任务