FreeRTOS Task로 LED Blinking
Pin Map 구성
- ETH Disabled

- Middleware and Software Packs - FREERTOS
: Interface : CMSIS_V1

: Tasks and Queues - Add - Stack Size : 256


코드 구현
main.c
- 아래의 코드 구현됨
- osThreadDef
: Task 생성 함수
: myTask02 : Task 함수
: TaskHandle : 우선순위
: 256 : 스택사이즈
osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 128);
defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);
osThreadDef(myTask02, StartTask02, osPriorityIdle, 0, 256);
myTask02Handle = osThreadCreate(osThread(myTask02), NULL);

void StartTask02(void const * argument)
- OS Task는 for(;;)로 되어있음
- 각각의 Task는 무한루프로 구성
- 지연 함수는 HAL_Delay 함수 대신 osDelay() 함수 사용
- for(;;)문 안에 HAL_GPIO_TogglePin(LD2_GPIO_Port, LD2_Pin); 추가시 간단하게 코딩 완료
- 여러개 LED 제어시 Task 추가하여 동일하게 수정 => 동시에 여러개의 프로그램 실행 가능
: ex) LCD에 글자 입력하면서 동시에 시계 update 등
void StartTask02(void const * argument)
{
for(;;)
{
HAL_GPIO_TogglePin(LD2_GPIO_Port, LD2_Pin);
osDelay(200);
}
}

- Build
- Debug
- Execution
- LED 깜빡임
