// [유형 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다 라고 하는 식으로.
'[2025~] Embedded > Free RTOS' 카테고리의 다른 글
[Free RTOS_023] 포팅 - 새 프로젝트 만들기 (0) | 2025.03.07 |
---|---|
[Free RTOS_022] 포팅 - 시작 (0) | 2025.03.07 |
[Free RTOS_020] FreeRTOS 소개 (0) | 2025.03.07 |
[Free RTOS_019] RTOS의 종류 (0) | 2025.03.07 |
[Free RTOS_018] RTOS의 특징 (0) | 2025.03.07 |