-
Interruption pour driver
Bonjour à tous,
Je poste car je souhaiterais savoir si vous pouvez m'aider pour mon petit soucis. Je veux réaliser un driver basique pour le moment qui marche. Et je souhaiterais utiliser une interruption pour le moment juste pour afficher du texte.
J'utilise donc la fonction request_irq pour mettre en initialiser mon interruption. J'ai vérifié dans /proc/interrupts pour vérifier quelles interruptions étaient déclarées. J'ai voulu prendre l'interruption RTC pour ecrire chaque fois que cette interruption était validé.
Mais lors de l'initialisation, request_irq me renvoi le code d'erreur EINVAL. J'ai aussi essayé de prendre un numéro d'interruption non pris et j'ai le même code d'erreur.
Je me demande si j'ai oublié une déclaration quelques part ?
En vous remerciant par avance pour votre aide.
-
montrer le problème
Il est très diffecile de t'aider si tu ne donnes pas les informations (evidemment) nécessaires: comment savoir si une déclaration manque sans les bouts de code concernés?
Si je peux me permettre, essaie: (1) de bien cerner le problème en esprit, c'est-à-dire de voir les éléments de ton prog qui sont concernés ou pas (on peut se tromper, là). (2) De réduire ton code (plutôt en réécrivant qu'en copier-coller) à la plus simple expression qui manifeste le problème. En fait, ça peut être un bout de code totalement différent de l'original (3) Bidouille, modif, teste.
Dans presque tous les cas cette méthode te donne la solution aux étapes 1, 2, ou 3. Et en plus tu as appris quelque chose (et progressé en "diagnosticologie" ;)).
Si ça suffit pas, réexplique-nous en montrant tes essais de code et leurs résultats, texto, plutôt en copier-coller cette fois.
Denis
PS: Je suis conscient que ce post a un ton un peu paternaliste, c'est pas mon intention mais j'arrive pas à le formuler autrement. Désolé...
-
Merci pour ta réponse!
J'ai deja essayé de simplifier mon code au maximum.
Je vais essayer de m'exprimer plus clairement.
J'ai créé un driver tout simple (tutoriel sur votre site) qui affiche du texte à l'ecran.
Je veux maintenant rajouter une interruption pour les manipuler.
J'ai donc fais un request_irq sur la RTC. Et lorsque je lance mon driver, la fonction request_irq me donne un code d'erreur ici EBUSY et je ne parviens pas à rentrer dans mon programme d'interruption. J'ai bien configuré comme partagé mais meme avec ca cela ne marche pas.
Je voulais savoir comment je pourrais faire pour afficher du texte à chaque interruption de la RTC.