Xeno's Study Blog (http://XenoStudy.tistory.com)
- 글쓴이 : xeno
- 출처 : [출처] [강좌]Device Driver의 MDD와 PDD를 이해하자|작성자 글루미
- 기타사항 : 퍼온자료를 보기좋게수정;;
퍼온자료를 정리할겸 포스팅..
보기좋게 정리..
우선 용어 ^^
MDD : Model Device Driver
PDD : Platform Device Driver
BSP : Board Support Package
Windows CE의 Device Driver는 보통 MDD와 PDD 이렇게 두 Layer로 구분이 됩니다.
PDD ==> 해당 하드웨어에 직접 접근하여 MDD에서 요구하는 기능을 직접 수행하는 코드
쉽게 풀자면 OS는 Windows CE라는 놈안에서 돌아가겠죠? OS는 WINCE라는 놈으로 다 같지만, HW.. 즉 Board는 다 다를겁니다. 예를들어 2410보드라던가.. MP2530F 보드라던가.. 메인스톤 보드라던가.. 등등등 이렇게 많인 솔루션들이 존재하죠.. 그리고 이에 따른 해당 BSP( Board Support Pakeage )가 존재하게 되고요.
그렇다면. 터치 드라이버를 예로 들어봅시다. 터치 드라이버는 보드의 LCD 화면을 누르면 그 포인트를 잡아서 LButton Down같은 메시지를 발생시켜주죠. 구분해봅시다. 터치 드라이버 내부에선 어떤일을 하게 될까요? 인터럽트 방식으로 예를 들겠습니다.
여기서 파란색은 MDD가, 빨간색은 PDD가 하는 일이라고 보면 될 거 같습니다. 파란색은 어떤 CPU던, 어떤 보드이건간에 사용자가 화면을 누르면 드라이버가 해야할 일이죠? 그리고 빨간색은 보드마다 해야할 일이긴 하지만, 보드마다 읽는 방법이 다를겁니다.
이렇게 구분지은거에요. 굳이 소스코드를 다 짜지 않아도 PDD부분.. 즉 HW에 의존적인 부분만 구현하고 미리 구현되어 있는 MDD (즉 어떤 보드이건 SW적으로 해야할 일이 이미 구현된 MDD) 와 짜맞추기만 하면 드라이버가 완성되도록 하는거죠. 그래서 MDD, PDD로 구분을 지어놓은겁니다.
이렇게 되면 잘 모르겠어도 짜는 사람 입장에선 참 편하겠죠?
미리 짜여진 부분이 있으니까, 내가 짤 부분은 반토막 또는 그 이상 줄어든다는 의미이니까요 ^^ 자자.. 이해가 되셨나요?
참고로 Windows CE의 Device Driver는 MDD, PDD로 나뉘어 있는 구조와 하나로 통합되어 있는 UM ( Unified Model ) 이 있습니다. Audio Driver가 UAM ( Unified Audio Model ) 이 많죠.