태스크 정리
현재 DAC5000 에 있는 여러개의 Task 가 존재한다. 각각의 Task 들은 서로 Message 를 주고 받고, 큐를 만들어서 통신을 한다.
각각이 Taks 는 아래와 같이 생성하게 된다.
task_create((void (*)(void *))keyMicom, NULL, 8192, 7, "tKEYm", 0);
taks_create 라는 시스템 콜을 이용해서 Task 를 만드는 데, 이에 대한 설명을 하자면, 아래와 같다.
| 이름 | 설명 |
| keyMicom | 실행할 함수 |
| NULL | 넘겨주는 파라미터 |
| 8192 | 스택 사이즈 |
| 7 | 우선순위 |
| “tKEYm” | 이름 |
| 0 | flags |
위에서 짚고 넘어가야 하는 것이 바로 우선순위이다. 각각의 태스크를 생성할 때마다, 우선순위를 정해주어야 하는 데, 숫자가 높을 수록 우선순위가 높다. 전체적인 프로그램이 수행되는 데 있어, 여러가지 태스크의 우선순위가 결정되는 데, 이는 아주 중요하다,
예를 들어, UI 의 우선순위가 A/V 보다 높다면, UI 를 실행하는 동안에는 A/V 가 끊기거나, 멈출 수 있기 때문이다. 때문에 어떤 태스크가 중요한지 또는 중요하지 않은지를 결정해서 우선순위를 부여해야 한다.
DAC5000 사용중인 Task
| 이름 | 우선순위 |
| channelChangeAV | 10 |
| channelScan | 12 |
| timerTask | 8 |
| keyMicom | 7 |
| keyTask | 7 |
| PsipOperation | 14 |
| SignalWait | 13 |