В ESP32 можно создать процесс FreeRTOS при помощи функции xTaskCreatePinnedToCore()

void myFunction(void* arg) {
    while(true) {               // По завершению функции процесс не будет вызван повторно
        digitalWrite(LED_BUILTIN, 0);
        vTaskDelay(1000);       // vTaskDelay передает процессороное время другим задачам
        digitalWrite(LED_BUILTIN, 1);
        vTaskDelay(1000);
    }
}

TaskHandle_t myTask;

xTaskCreatePinnedToCore(
                    myFunction  /* Функция, выполняемая процессом */
                    "Name",     /* Имя для процесса, нужно для отладки */
                    1024,       /* Размер стэка в словах (по 4 байта), не менее 1024 */
                    NULL,       /* Указатель на параметр для функции */
                    0,          /* Приоритет процесса */
                    &myTask,    /* В переменную будет сохранен идентификатор процесса */
                    0);         /* Исполняющее ядро (0 или 1), только 0 для одноядерных*/

vTaskDelete(myTask);            // Можно удалить задачу по её идентификатору