2010-06-25 3 views
1

Si on me disait que je devais créer un pilote pour un produit (par exemple, un contrôleur de jeu), comment pourrais-je en créer un? Est-ce quelque chose que vous pourriez faire normalement en C/C++?Création de pilotes et de micrologiciels

Et qu'en est-il du firmware pour la connexion externe à l'USB? Comment cela est-il créé habituellement? Est-ce que cela est également fait en C/C++ ou dans un langage de niveau inférieur?

Merci!

Répondre

1

Je vais ajouter à la bonne réponse Amardeep avec les livres suivants qui vous aideront à réfléchir sur les pilotes de périphériques de contexte fonctionnent, et comment ils sont structurés:

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

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

Mac 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

Vous le faites dans n'importe quelle langue qui peut parler à l'interface. Si cela nécessite de piquer des ports ou des adresses directement, alors vous utilisez assembly ou C. S'il y a une interface de plus haut niveau telle que libusb alors vous pouvez utiliser presque n'importe quelle langue que vous aimez.

2

Les pilotes de périphérique pour les systèmes d'exploitation d'ordinateurs de bureau sont généralement écrits en C ou C++. Le système d'exploitation que vous ciblez aura une forme de cadre ou d'environnement de développement de pilote de périphérique. Souvent, ces kits de développement peuvent être obtenus gratuitement.

Il existe des livres disponibles pour Windows, Linux et MacOS X (et autres) qui détaillent le processus de création d'un pilote de périphérique.

Si votre pilote est associé à un périphérique sur un bus matériel spécifique (PCI, PCI-X, USB, SCSI, SATA, etc.), vous pouvez également obtenir des livres sur cette technologie spécifique. Une compréhension de ce système matériel peut grandement faciliter la conception de votre pilote.

Une autre bonne ressource est le code source ouvert pour les périphériques similaires aux vôtres. Vous pouvez l'obtenir à partir de la source du noyau Linux ou de la source FreeBSD et étudier comment certains aspects de votre type d'appareil sont implémentés.

EDIT: J'ai presque oublié de mentionner que vous aurez également besoin de feuilles de données, de schémas et/ou d'informations sur la théorie de fonctionnement de l'appareil lui-même.

Questions connexes