2010-06-25 3 views
1

일부 제품 (예 : 게임 컨트롤러) 용 드라이버를 만들어야한다고 들었을 때 어떻게 만들겠습니까? 이것은 C/C++에서 일반적으로 할 수있는 일입니까?드라이버 및 펌웨어 만들기

외장형 펌웨어 용 펌웨어는 USB에 연결하면 어떻습니까? 이것은 보통 어떻게 만들어 집니까? 이것은 C/C++ 또는 일부 저수준 언어에서도 수행됩니까?

감사합니다.

답변

1
난 당신이 상황에 맞는 장치 드라이버에 대해 생각하는 데 도움이됩니다 다음 책을 Amardeep의 좋은 답변에 추가 할 것입니다

가에서 운영하고 구조화하는 방법 :

리눅스 : http://www.amazon.com/Understanding-Linux-Kernel-Third-Daniel/dp/0596005652

윈도우 : http://www.amazon.com/Programming-Microsoft-Windows-Driver-Model/dp/0735618038/ref=sr_1_1?ie=UTF8&s=books&qid=1277439434&sr=1-1

맥 OS : http://www.amazon.com/Mac-OS-Internals-Systems-Approach/dp/0321278542/ref=sr_1_1?ie=UTF8&s=books&qid=1277439467&sr=1-1

1

인터페이스와 대화 할 수있는 모든 언어로 작업 할 수 있습니다. 포트 나 주소를 직접적으로 파킹해야하는 경우 어셈블리 나 C를 사용합니다. libusb와 같은 상위 인터페이스가 있으면 원하는 언어를 거의 사용할 수 있습니다.

2

데스크톱 컴퓨터 운영 체제 용 장치 드라이버는 일반적으로 C 또는 C++로 작성됩니다. 대상으로하는 운영 체제에는 프레임 워크 또는 장치 드라이버 개발 환경의 일부 양식이 있습니다. 종종 이러한 개발 키트는 무료로 얻을 수 있습니다.

장치 드라이버 작성 프로세스를 자세히 설명하는 Windows, Linux 및 MacOS X (및 기타) 용 서적이 있습니다.

드라이버가 특정 하드웨어 버스 (PCI, PCI-X, USB, SCSI, SATA 등)에 연결된 장치 인 경우 해당 특정 기술에 대한 책을 얻을 수도 있습니다. 이 하드웨어 시스템을 이해하면 드라이버 설계를 매우 쉽게 할 수 있습니다.

다른 좋은 리소스는 비슷한 장치에 대한 오픈 소스 코드입니다. 리눅스 커널 소스 나 FreeBSD 소스에서 얻을 수 있으며 디바이스 유형의 특정 측면이 어떻게 구현되는지 연구 할 수 있습니다.

편집 : 데이터 시트, 회로도 및/또는 장치 자체에 대한 작동 정보 이론이 필요하다는 점을 거의 잊었습니다.

관련 문제