Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2548 connectés 

 


Dernière réponse
Sujet : comportement de select() dans un module noyau
kzimir De mémoire, il faut jouer avec cli(), sti(), select_wait(), sleep_on() et wake_up()... C'est un peu loin pour moi, mais avec ça tu devrais trouver les tutos kivonbien

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
kzimir De mémoire, il faut jouer avec cli(), sti(), select_wait(), sleep_on() et wake_up()... C'est un peu loin pour moi, mais avec ça tu devrais trouver les tutos kivonbien
fonsdel 1°) Pour un souci de cohérence avec le reste de mon projet:  
=> j'ai une application principale qui gere user et affichage. Cette appli utilise plusieurs sources de donnée en provenance de capteurs electroniques donc obligation de développer des drivers!
=> Du coup le drivers GPS sur RS232 était pour moi un premier entrainement.  
 
 
 
Mais il est clair que si ca me faire perdre du temps, je vais me contenter de mon appli userland qui tournera dans un processus parallèle.
Mjules J'y connais rien en programmation mais j'ai quand même une question :D
 
si ton soft marche très bien en userland, pourquoi vouloir le passer en module noyau où les contraintes sont quand même nettement plus grandes ?  
(en dehors de l'intérêt intellectuel)
fonsdel hop hop pas trop vite gamin!!!
 
 
pour ceux que ca interesse: select() en mode noyau n'est pas disponible, pas plus que read ou write,  ou en tout cas pas comme cà!  
 
Y a du syscall qui traine, je cherche....
fonsdel pour le moment je debug rien, j'ai pas encore compilé le module.  
 
J'en suis au questions prélimianires et recherche d'info sur la construction d'un drivers linux...
mirtouf tu débugges via /proc ou bien ?
fonsdel 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.

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)