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
Bonne journée à tous
Mon probleme viens de la suite. Je dois utiliser un protoco