Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
port série
Envoyé par: ocian

Bonjour à tous, je suis en train de développer un driver pour le port série.
Je suis sous debian 5.
J'ai donc commencé par recompilé mon kernel en mettant en lkm les drivers serial puis, je les aient blacklisté de maniere à etre bien sur de n'avoir aucun driver de déja mis et donc risque de concurence apres.
Suite à cela, je charge mon lkm perso qui créé un device char, lui assigne l'irq 4 pour le gestionnaire d'interrupt et fais un request_region(0x3f8, 8); de maniere à prendre le controle des I/O sur cette région (0x3f8 == com1)
Tout ca fonctionne plutot pas mal (a ceci pres qu'il me faut lancer 2 fois le request region, le premier échouant à chaque fois et le second passant, je ne l'explique pas déja).
Ensuite j'ai donc fais quelques petits test:
Imaginons, nous avons 2 port série, le A et le B
donc si je fais un outb(value, 0x3f8); j'ai bien une interuption déclanché chez B
Jusque la le fonctionnement est bon.
Le probleme est que je dois utiliser un protocole spécifique pour faire communiquer A et B:
A veux envoyer des données à B, il doit donc set son registre DTR pour que en repercution, les registre DTS et RTS se set à 1 chez B. Déja cela ne fonctionne pas.... mon dtr est bien modifié chez A mais aucun changement chez B. Du coup, pas d'interruption et je ne peux pas continuer à valider la ligne...
Ma question de fond est donc: Lorsque je veux setter les registres DTS et RTS sur l'uart de B, que faut t'il que je set sur l'uart de A ? normalement le DTR si je dis pas de bétises non ?
Mille merci à celui qui pourras m'aider smiling smiley
Bonne journée à tous
Mon probleme viens de la suite. Je dois utiliser un protoco

Poste le Wednesday 16 June 2010 16:20:25
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
port série
Pour poser vos questions sur les scripts shell, le Perl, le C, etc... Attention : nous ne sommes pas des spécialistes du dev, ce forum est juste pour de petites aides ponctuelles concernant le développement et les outils de développement.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons