bonjour
j'utilise des fonctions fournies par le système temps réel RTAI Linux ceci est équivalent à la programmation C sous Linux, j'espère que quelqu'un qui connais à la programmation C pourra me rependre.
mon problème concerne la fonction rt_task_init son role est l'initialisation d'une tache dont le prototype est int rt_task_init (RT_TASK *task, void(*rt_thread)(int), int data, int stack_size, int priority, int uses_fpu, void(*signal)(void)) .
la fonction qui correspond à la tache je la déclare comme suit
void tache(int ID) ou static void tache(int ID) et je fait l'appel suivant rt_task_init(id,tache,i,1000,1,NULL)
le compilateur m'affiche après la compilation du module une erreur de segmentation.
merci?
# re:
Posté par nikitae . Évalué à 2.
id doit etre l'adresse de..
peut-etre en le précédant du & ??
idem pour le 2eme argument
quand au dernier, est-ce admis de laisser un pointeur null?
comment savoir ce qu'il en retourne?
ces arguments sont utilisés dans la fonction rt_task_init
il faut donc verifier là-dedans
# Un petit exemple
Posté par galactikboulay . Évalué à 2.
pas à quoi correspond "id".
J'ai trouvé un petit exemple pratique à :
http://www.enseirb.fr/~kadionik/embedded/linux_realtime/linux_realt(...)
Ca pourra te donner une piste je pense.
# Et le compilo ?
Posté par sn00py . Évalué à 1.
Il faut donc que tu voit ce problème avec ceux qui développe le compilo.
[^] # Re: Et le compilo ?
Posté par iugruik . Évalué à 1.
RT_TASK id;
tu dois donc passer &id comme premier paramètre de rt_task_init.
(ps: j'imagine que tu as dû te mettre à la programmation avancée de modules noyaux? pas évident au début!)
# reponse a ceux qui m'ont répondus
Posté par zakarias . Évalué à 1.
Je vais essayer la solution suivante
dans la fonction void (*task)(int) je vai mettre rt_task_wait(); je pense que c'est le problème !!!
a la prochaine.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.