Besoin d'une explication sur les URB et interruptions [usb linux] - C - Programmation
Marsh Posté le 20-01-2005 à 18:04:50
Il y a des exemples de pilotes de périphériques sur le FTP de oreilly (ftp.oreilly.com), pub/examples/linux/ ...
Peut-etre y a t'il un exemple qui pourrait t'aider ?
ça aussi :
projetaurore.assos.univ-fcomte.fr/USB/USB.pdf
et bien sur
/usr/src/linux/Documentation/usb/URB.txt, qui est valable pour ton noyau courant.
Marsh Posté le 20-01-2005 à 18:29:17
Un grand merci à toi (encore une fois). Je vais bouquinner toutes ces sources mais après un survol rapide, j'ai l'impression que pas mal d'infos y sont contenues ... la suite au prochain épisode !!!
merci encore ++fab, qu'est-ce que je ferai sans toi
Marsh Posté le 20-01-2005 à 16:44:23
Bonjour à tous. Je laisse tomber mon post précédent pour en créer un nouveau, car je réalise que je fais fausse route.
Je ne suis pas très clair sur l'utilisation des URB (sous linux).
Je vous décrit donc mon problème, n'hésitez pas à me rediriger vers des docs explicant ca, si vous en connaissez.
En fait, je crée un module usbcam_module, dans lequel je code les fonctions de lecture (vers bulk EP 1 out) et écriture (vers bulk EP 1 in).
J'ai également créé une application usbcam_interface.c qui fait des read() ou des write() sur mon fichier (image du device).
Mon souci est de savoir comment forcer la copie de données dans le buffer d'un urb. Prenons l'exemple du ep 1 OUT. Dans usbcam_module.c, fonction read, je crée mon URB (FILL_BULK_URB), je le soumets (usb_submit_urb) ... mais il n'est pas encore rempli. J'ai cru comprendre que je devais créer une fonction (completion handler) qui elle, va forcer le remplissage ... est-ce juste ?
J'ai aussi l'impression qu'il faut lier les interruptions à ce remplissage mais je n'y vois pas très clair.
je ne vois pas non plus où se fait l'attente de la fin du remplissage du buffer ??? Dans le module usbcam_module ... fonction read ... avant de faire le copy_to_user() ? ... ou bien dans mon application interface (usbcam_interface.c) ???
Si vous avez la moindre information, elle me serrait précieuse, car la, je m'en arrache vraiment les cheveux ! Merci d'avance à tous.
Message édité par allawos le 20-01-2005 à 16:46:49