質問
いくつかの製品(たとえば、ゲームコントローラー)のドライバーを作成する必要があると言われた場合、どのように作成しますか?これはあなたがc/c ++で正常にできることですか?
そして、外部デビッドのUSBに接続するためのファームウェアはどうですか?これは通常どのように作成されますか?これは、C/C ++、またはいくつかの低レベルの言語でも行われますか?
ありがとう!
解決
Amardeepの良い答えに、次の本で、コンテキストデバイスのドライバーが動作することと、それらがどのように構造化されているかを考えるのに役立ちます。
Linux:http://www.amazon.com/understanding-linux-kernel-third-daniel/dp/0596005652
他のヒント
デスクトップコンピューターオペレーティングシステム用のデバイスドライバーは、通常、CまたはC ++のいずれかで記述されます。ターゲットにするオペレーティングシステムには、何らかの形のフレームワークまたはデバイスドライバー開発環境があります。多くの場合、これらの開発キットは無料で入手できます。
Windows、Linux、およびMacOS X(およびその他)で利用できる本があり、デバイスドライバーを作成するプロセスを詳述しています。
ドライバーが特定のハードウェアバス(PCI、PCI-X、USB、SCSI、SATAなど)のデバイスに関連している場合は、その特定のテクノロジーに関する本も入手できます。そのハードウェアシステムを理解することで、ドライバーの設計を大幅に促進できます。
もう1つの優れたリソースは、あなたと同様のデバイスのオープンソースコードです。 LinuxカーネルソースまたはFreeBSDソースからそれを取得し、デバイスのタイプの特定の側面がどのように実装されているかを調べることができます。
編集:データシート、回路図、および/またはデバイス自体に関する操作の理論も必要であることを忘れてしまいました。
インターフェイスと話すことができるあらゆる言語でそれを行います。ポートポートまたはアドレスを直接必要とする場合は、アセンブリまたはCを使用します。Libusbなどの高レベルのインターフェイスがある場合は、好きなほぼすべての言語を使用できます。