Bonjour, bonjour,
Je suis en train d'écrire un pilote (c'est mon premier...) pour interpreter des trames GPS. J'ai déjà développé un programme executable au niveau userland qui réalise avec succès les traitements néscessaires, maintenant je souhaite adapter ce programme pour le faire tourner en tant que drivers au niveau noyau.
Comme mon prog est à l'écoute permanente du port RS232, j'utilise la fonction select() à l'interieur d'une boucle de lecture infinie. Select() suspend le processus en cours, et attend un evenement sur RS232. Quand des données se présentent mon processus est réveillé, une lecture est faite suivi des traitement, et je retourne au début de ma boucle infinie, et je reviens en attente sur Select()
Mais comment va se comporter select() en mode noyau? Si elle bloque le processus en cours, au niveau noyau est ce que cela pose problème? Est ce que cela risque de suspendre tout le noyau? ou d'en perturber son fonctionnement? Ou est ce que chaque module est vu par le noyau comme un "processus' indépendant?
Voili, voilou. Merci d'avance.