임베디드 보드 개발을 처음 시작하는 개발자의 경우 고참중에 쓸만한 고참이 있을면 처음 과제로 오디오 코덱 드라이버를 개발하거나 수정하는 업무를 줄 것입니다.

 왜냐면 제가 그렇게 하기 때문에. 움하하하하하하

 참고로 제 후배중에 배장규씨한테는 그렇게 했었는데 김무겸씨한테는 일부만 했네요. 미안합니다.

 그건 그렇고 오디오 코덱을 첫 과제로 내 주는 이유는 다음과 같습니다.

  1. 대부분의 오디오 코덱이 제어를 I2C 로 한다.
  2. 데이터 전송을 I2S 로 하는 경우가 많다.
  3. 디바이스 드라이버 샘플 코드가 공개되어 있는 경우가 많으며 비교적 간단하여 이해가 쉽다.
  4. 기능 갯수가 적어서 테스트가 용이하다.

 오디오 코덱을 개발할 때 개발 순서(절차) 를 간단히 정리하면 다음과 같습니다.

  1. 디바이스 드라이버 소스를 제공하는지 부터 확인(중요함)
  2. 데이터 시트 중 스팩 관련된 내용과 pin map 부분 정독. 나머지는 필요할 때마다 꺼내 보면 됨.
  3. main clock, 전원, reset pin 상태를 확인함. 오디오 코덱은 이 세가지만 잘 인가되고 있으면 별 문제 없이 동작됨.
  4. 데이터 시트에서 analog loop-back 모드를 확인하여 analog loop-back 모드로 설정하고 loop-back 기능이 잘 동작되면 코덱 자체(HW) 는 잘 구성되어 있다고 판단함.
 
 여기까지 우선 확인해서 잘 동작되면 약 95% 정도 진행된 것으로 판단하면 됩니다.

 그 다음엔 다음 명령을 사용해서 녹음, 재생을 해 봅니다.

  audio device file name : /dev/dsp
  녹음 : cat /dev/dsp > raw.wav
  재생 : cat raw.wav > /dev/dsp

 여기까지 했을 때 녹음 잘 되고 재생 잘되면 디바이스 드라이버 단까지는 완료된 것으로 판단하시면 됩니다.

 ==================================================================
 디바이스 드라이버 기본 동작까지는 잘 확인하였으니 한 이삼일 동안 데이터 시트 보면서 오디오 코덱의 여러 기능들을 테스트 해 보는 시간을 꼭 가져야 합니다.
 시간을 버리는 것처럼 보일 수도 있지만 이번에 이런걸 해 보아야 application 개발자에게 전달할때 application 을 쉽게 짤 수 있도록 여러 준비를 할 수 있는 토대를 마련할 수 있습니다.

꼭 기억합시다. 플랫폼 개발자는 자기 개발건만 생각하면 안됩니다. H/W, S/W 엔지니어가 쉽게 개발을 할 수 있도록 항상 신경써 주면서 개발해야 합니다.

 이제 디바이스 드라이버 단에 대한 개발은 완료되었으니 application 개발자를 위해 library 를 만들어 주도록 합시다. 

 요즘은 디바이스 드라이버 단독으로 동작하는 경우는 거의 없고 ALSA 나 OSS 같은 프레임 웍에 연동되도록 디바이스 드라이버를 작성하고 있습니다.

 하지만 그렇다 하더라도 "네가 알아서 ALSA, OSS 프레임 웍에 맞게 application 작성해라" 라고 하는 것은 능력없는 플랫폼 개발자나 하는 행동이고 뛰어난 플랫폼 개발자는 application 개발자가 API 만 호출해서 쓸 수 있도록 준비해 줘야 합니다.


 여기까지 개발을 진행하셨다면 여러분은 배장규씨나 김무겸씨 같은 뛰어난 플랫폼 개발자가 되신 겁니다.

 축하 드립니다.

'linux' 카테고리의 다른 글

VLC player  (0) 2011.01.04
subversion  (0) 2011.01.04
vplay  (0) 2010.10.08
WM8731 driver  (0) 2010.10.08
ffmpeg 컴파일  (0) 2010.10.06
블로그 이미지

김유석0

,