Thursday, February 23, 2017

PCI / USB 디바이스 드라이버를 쉽게 작성하도록 도와주는 WinDriver 디바이스 통합 개발 툴 소개 (Linux, Windows, Windows CE 환경 지원)

거 Windows에서 디바이스 드라이버 개발하는 개발자를 찾기란 하늘에 별따기였다. 이 영역은 하드웨어에 대한 이해도 필요하며 Windows에서 제공하는 디바이스 드라이버 개발 키트(Windows Device Driver Development Kit)에 대한 win32 기반 코드도 이해를 해야 하기 때문이다. 이런 이유 때문에, 보통 펌웨어(Firmware) 개발자를 찾아 학습을 해서 Windows 용 디바이스 드라이버를 개발하곤 했다. 


D810, 105.0 mm f/2.8 - PCI 기반 디바이스

근 하드웨어 사용이 좋아지며 고성능 PC를 서버급 데이터 처리하는 도구로 활용하는 일이 빈번해졌다. 그런데, 문제는 고사양 Graphic 카드를 원하는 대로 이용하기 위해서는 내가 사용하는 OS에 맞도록 Device Driver(디바이스 드라이버)를 새로 개발해야 되는 상황도 생긴다는 것이다. 특히 Windows 용 Device Driver는 지원하는데, 나는 Linux OS를 사용해야 한다면 어떨까?


D810, 105.0 mm f/2.8 - 고사양 CPU가 이중화되어 있는 PC


"OS에 대한 배경지식을 잘 몰라도PCI/USB에 대한 기본 지식만 있으면비교적 쉽게 Wizard처럼 IDE(통합개발 툴) 환경에서 디바이스 드라이버(Device Driver) 개발이 가능하다."

과거 맨땅에(?) 디바이스 드라이버를 개발했던 개발자라면 깜짝 놀랄 일이다. 이스라엘 기반의 정고(Jungo) 사의 WinDriver 소프트웨어를 이용하면 비교적 쉽게 디바이스 드라이버를 개발할 수 있다.

WinDriver IDE(통합 개발 툴)의 스크린 캡처

D810, 105.0 mm f/2.8 - PCI 기반 디바이스
WinDriver 소프트웨어를 실행하고 PC에 USB 혹은 PCI 기반의 Device Driver를 연결하면, 자동으로 WinDriver 소프트웨어가 이를 인식하고 화면에서 Device Driver를 선택할 수 있도록 도와준다.

X-Pro2, Leica Summicron M 50mm F2
이제 Device 의 상세 설정(Configuration)을 하고, Target OS(대상 운영체제)를 선택하면 Windows 기반인 경우 Visual Studio 기반으로 예제 코드 및 바로 Build 가 가능한 프로젝트 파일을 만들어 준다. Linux의 경우, GCC로 Build가 가능한 Make 파일을 생성해 준다.

X-Pro2, Leica Summicron M 50mm F2
우리의 예시는 Windows 환경에서 개발하므로 Visual Studio 그리고 내가 사용하고 개발 Tool 버전을 선택한다. 그리고 OK.

WinDriver IDE(통합 개발 툴)에서 생성한 Device Driver를 개발 가능한 Project를 Visual Studio에서 열어 보았다.


"OS에 지식 없이 
WDD(Windows Device Driver) SDK에 대한 지식 없이
WinDriver 통합 개발 툴에서 설정을 통해서
Device Driver를 만들 수 있는 Project를 생성해 준다."

아마 과거 직접 Device Driver를 개발해본 개발자라면, 이쯤이면 감동이 밀려올 것이다.




욱 좋은 일은 우리 기업 내부에서 사용할 목적이 아니라, 배포를 위한 Device Driver를 개발한다면 WHQL Ready 인증을 받아야 한다. WinDriver로 개발된 Device Driver 와 관련된 Code는 Windows Hardware Quality Labs (WHQL) ready 인증을 바로 받을 수 있는 코드를 생성해 준다. 우리가 Application과 Interface(인터페이스) 할 코드만 WHQL ready 인증을 염두에 둔다면 인증을 받는 것 또한, 시간을 크게 절약할 수 있다.

D810, 105.0 mm f/2.8

D810, 105.0 mm f/2.8
D810, 105.0 mm f/2.8

WinDriver를 도입하는 비용은 개발자가 Device Driver를 개발하며 고생한 시간보다 저렴하다. 그런데 만약 한 번 이상 Device Driver를 개발해야 하는 상황이라면, 굳이 고민하지 말고 Jungo 사의 WinDriver를 검토하라고 권장하고 싶다.

WinDriver에 대한 문의는 (주)디오이즈 성원호 대표 (whsung@dioiz.com)


Share:

0 comments:

Post a Comment