// [유형 1] 무한루프 함수
void Your_Task( void *pvParameters)
{
    for(;;) {
    /* USER CODE Is here */
    // Call one of FreeRTOS's services:
    vTaskDelay();
    vTaskSuspend();
    vTaskPrioritySet();
    vTaskResume();
    /* USER CODE is here */
}

// [유형 2] 실행 후 스스로를 삭제하는 함수
void YourTask(void *pvParameters)
{
    /* USER CODE is here */
    vTaskDelete(NULL);
}


무한루프 함수스스로를 삭제하는 형태의 함수가 가능
  태스크는 절대 리턴하면 안되므로 항상 'void' 로 리턴형을 사용
예) void userTask(void *pvParameters)

테스크가 있다고 하면 그 테스크의 이름은 아래와 같은 형태여야 됩니다.

uart_task.c

http_task.c

mqtt_task.c

...



테스크의 return은 무조건 void 입니다.

전달인자는 void pointer나 아무 포인터 형태 입니다.

 

 


테스크를 만들 때 이렇게 Kernel API 를 이용해서

태스크화 시킬 수 있습니다.

    // TASK CREATE
    xTaskCreate(
    	Task1,
        "Task1",
        1024,
        NULL,
        TASK_1_PRIO
    	&xHandle
    );

 


근데 좀 헷갈리실 만한 게 있어요.
Task1 이건 함수명이죠. "Task1" 이것도 함수명이잖아요.
근데 "Task1" 은 이름의 성격이에요.
간단하게 description 할 수 있어요.
이 함수가 어떤 함수다라고 하는 것을 description 하게끔 하는 것입니다.
태그, 하나의 식별자를 넣는거에요.
이게 Task1이라는 이름의 task다 라고 하는 식으로.

 

 

+ Recent posts