Étape 4: L’énumération des périphériques
Pour rendre les choses faciles, que j’ai écrit un simple firmware pour piloter l’appareil, vous pouvez utiliser ceci pour y aller et aussi comme une base pour comprendre comment fonctionne le firmware.
Une fois que vous avez votre premier périphérique en cours d’exécution que vous trouverez beaucoup plus facile de comprendre comment vous pouvez l’adapter pour des applications plus complexes.
La première est l’énumération des périphériques USB - cet exploit de sondage complexe est en fait la communication initiale avec la prise USB (votre PC) lorsque l’appareil indique l’hôte ce que c’est et comment il souhaite communiquer.
Communication USB s’effectue à l’aide de « paramètres » qui envoient des informations à l’hôte ou à l’appareil. Ainsi que la mise en place des canaux de communication l’appareil doit également passer son nom de périphérique et les deux autres valeurs importantes : la VID et PID.
La VID est l’ID de fournisseur et identifie le fabricant du périphérique. Pour obtenir votre propre VID vous devrez payer mille dollars ou plus à l’organisme de normalisation d’USB.
Dans cet exemple, nous utiliserons de Microchip VID pour sauver la dépense. Si vous êtes sérieux au sujet de production et de vente de périphériques, que vous devrez vous inscrire à un des vôtres.
Le PID est l’ID de produit. Avec la VID, ils forment un identificateur unique pour votre appareil. Lorsque votre appareil énumère tout d’abord Windows stockera la combinaison VID et PID pour le périphérique ; Cela est vrai même si vous utilisez un pilote générique comme le HID puisqu’il permet de réduire la quantité de temps que Windows a besoin pour préparer votre appareil.
C’est important parce que, si vous décidez de modifier les informations de votre appareil d’énumération (ajouter plus de points de terminaison, etc.), vous devrez également au moins changer le PID avant de reconnecter sinon vous obtiendrez Erreurs « Appareil ne pas démarré » même si votre code est impeccable (par expérience j’ai remarqué que Linux n’est pas tout à fait aussi tatillon et tend à ne pas se plaindre si vous gardez la même combinaison VID/PID).