Jak přidat FreeRTOS task ("thread") do jakéhokoliv PlatformIO projektu

Většina výchozích konfigurací PlatformIO již má FreeRTOS povolený - prostě ho nepoužívají.

Pro spuštění nového FreeRTOS “threadu” (nazývaného task v FreeRTOS terminologii), nejprve přidejte tyto include:

freertos_includes.cpp
#include <freertos/FreeRTOS.h>
#include <freertos/task.h>

Nyní přidejte funkci tasku a handle:

freertos_task_function.cpp
TaskHandle_t myTaskHandle;
void MyTask( void * parameter )
{
    for(;;)
    {
       // TODO Task code goes here
    }
    // if you ever exit the loop, this is here to clean up the resources
    vTaskDelete( NULL );
}

poté spusťte task pomocí tohoto kódu jednou, například ve vaší funkci main:

freertos_xTaskCreate_example.cpp
// Start MyTask thread
xTaskCreate(
    MyTask, // Task function
    "MyTask", // Name
    10000, // Stack size
    NULL, // Parameter
    1, // Priority
    &myTaskHandle);

Viz také náš nový příspěvek o tom, jak použít xTaskCreateStatic() pro použití staticky alokované místo dynamicky alokované paměti zásobníku pro task: FreeRTOS task se statickou pamětí zásobníku (xTaskCreateStatic) příklad


Podívejte se na podobné články podle kategorie: C/C++ Elektronika Embedded FreeRTOS PlatformIO