Esp32 模块中已经提供了 FreeRTOS(实时操作系统)固件。FreeRTOS有助于提高系统性能和管理模块的资源。FreeRTOS允许用户处理多项任务,如测量传感器读数,发出网络请求,控制电机速度等,所有这些任务都可以同时独立运行。
FreeRTOS为不同的应用程序提供了多个API。这些 API 可用于创建任务并使其在不同内核上运行。您需要创建任务以将代码的特定部分分配给特定内核。您还可以确定代码将在哪个内核上运行的优先级。优先级值以 level_0 开头。
每当我们在Arduino IDE上运行代码时,默认情况下,它会在core_1上运行。
您可以使用一个函数来检查代码在哪个内核上运行。xPortGetCoreID()
void setup()
{
Serial.begin(115200);
Serial.print( ” setup() is running on: Core_” );
Serial.println( xPortGetCoreID() );
delay(1000);
}
void loop()
{
Serial.print( ” loop() is running on: Core_” )