LED 출력 설정
bsp.c에 정의되어 있는 BSP_LED_Init() 함수를 사용하면 RCC를 이용한 APB2 Clock Enable 및 GPIOD 포트에 연결되어 있는 LED 포트들의 Output 설정이 가능하다. 현재 보드의 LED 포트는 2,3,4, 그리고 7번 포트인데 이에 대한 설정이 바르게 되어있지 않아 아래와 같이 설정하였다.
두 개의 Task 생성
App_cfg.h에서 AppTaskStart의 Priority인 APP_TASK_START_PRIO가 2로 설정되어 있는 것을 확인하였고 AppTask1과 AppTask2 두개의 task를 생성하기 위하여 각각의 TCB와 Stack 변수 및 함수 프로토타입을 정의하였다.
이후 아래와 같이 AppTask1, AppTask2 태스크를 AppTaskStart 태스크 내에서 OSTaskCreate()를 이용하여 생성하였다. 이 때 Priority는 AppTask1을 4로, AppTask2를 5으로 설정하였다.
LED 및 태스크 동작
BSP_LED_Toggle() 함수가 원하는대로 동작하지 않아 MyLedToggle()함수를 직접 정의하여 사용하였다.
인자로 전달한 정수에 따라 해당하는 LED가 토글되는데, OSTimeDlyHMSM() 함수를 사용하여 다음으로 우선순위가 높은 Task가 실행될 수 있도록 하였다.
l PRIORITY
- AppTaskStart -> 2
- AppTask1 -> 4,
- AppTask2 -> 5
l Delay Time
- AppTaskStart -> 3 seconds
- AppTask1 -> 1 second
- AppTask2 -> 2 seconds
l LED Number
- AppTaskStart -> 3
- AppTask1 -> 1
- AppTask2 -> 2