현재 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
  • computer/digitalarena/태스크_정리.txt
  • Last modified: 3 years ago
  • by likewind