FreeRTOS基本使用
2024年12月29日大约 1 分钟
FreeRTOS基本使用
FreeRTOS是一个开源的实时操作系统,它提供了一组库函数和应用程序编程接口(API),用于在多任务环境中实现实时性。FreeRTOS提供了许多高级功能,如任务管理、同步机制、内存管理、中断处理等,这些功能使得开发人员可以轻松地创建复杂的实时应用程序。 ESP32Arduino固件自带FreeRTOS库,免去了繁琐的移植操作。 在使用时直接#include <freertos/FreeRTOS.h>
和#include <freertos/task.h>
即可。
关于FreeRTOS创建多核任务
FreeRTOS支持多核任务,但需要使用xTaskCreatePinnedToCore
函数创建任务,并指定要使用的核心。
ESP32S3有两个核心,所以可以为两个核心创建两个任务,当然也可以在一个核心上创建两个任务; 代码如下
#include <freertos/FreeRTOS.h>
#include <freertos/task.h>
void task1(void *pvParameters)
{
while(1)
{
printf("task1\n");
vTaskDelay(1000 / portTICK_PERIOD_MS);
}
vTaskDelete(NULL);
}
void task2(void *pvParameters)
{
while(1)
{
printf("task2\n");
vTaskDelay(1000 / portTICK_PERIOD_MS);
}
vTaskDelete(NULL);
}
void setup()
{
xTaskCreatePinnedToCore(task1, "task1", 1024, NULL, 5, NULL, 0);
xTaskCreatePinnedToCore(task2, "task2", 1024, NULL, 5, NULL, 1);
}
void loop()
{
delay(1000);
}
// 施工中..................