IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

Premiers pas avec Xenomai [Tutoriel]


Sujet :

Linux

  1. #1
    Expert confirmé

    Avatar de Djug
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    2 980
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Algérie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 980
    Par défaut Premiers pas avec Xenomai
    David Chabal vous présente son article intitulé : Premiers pas avec Xenomai


    Xenomai est une solution « temps réel dur » libre adossée à Linux.
    Comme il n'est pas forcément aisé de comprendre directement la pertinence des solutions apportées par Xenomai, ce tutoriel décrit les limitations de Linux dans le cadre d'applications temps réel contraintes et introduit progressivement Xenomai.
    Ce document décrit, entre autres, l'installation et la configuration des noyaux Linux et Xenomai, le mécanisme de co-scheduling, ainsi que quelques exemples de réalisations.
    Bonne lecture

  2. #2
    Membre du Club

    Profil pro
    Directeur de projet
    Inscrit en
    Août 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2011
    Messages : 7
    Par défaut
    Un attentif lecteur m'a communiqué qu'en version 2.6.0 (et probablement au dela) de Xenomai le -lxenomai est nécessaire afin de compiler.

    Ce qui donne pour le hello world la ligne de commande suivante:
    gcc -I/usr/xenomai/include hello.c -L/usr/xenomai/lib -lnative -lxenomai -o hello


    Cette modif sera intégrée dans la prochaine version du tuto.

    David

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 15
    Par défaut Tâche temps réel non blocante (500µs)
    Bonjour,

    Merci pour ce tuto bien utile!
    J'ai cependant une petite question.

    Je ne sais pas si c'est le bon topic pour poser ma question, mais je galère depuis plusieurs jours pour créer une tâche, lancée toute les 500µs et qui n'attend pas d'avoir terminée son traitement avant de se relancer.
    Tout les exemples que je trouve sont des tâches cadencée chaque seconde et qui attende que la tâche soit finie avant de se relancer.

    Exemple: Je veux que ma tâche TASK (temps d'exécution entre 30µs et 500ms) se lance toute les 500µs, sans attendre que cette dernière aille jusqu'au bout.

    La tâche TASK se présente comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    static void TASK(void *arg)
    {
      while(i<10000000)
      {
    	  i++;
      }
    }
    Normalement, vu que la tache TASK est lancée toute les 500µs, elle n'a pas le temps de compter jusqu'a 1 million.

    Or il se trouve que mon programme attend toujours que ma tache TASK termine. Il va toujours jusqu'a 1 million, prenant 30ms en temps d'execution.
    J'ai pourtant crée une tâche sans l'option T_JOINABLE :
    rt_task_create(&task[0], "TASK", 0, 99, T_FPU|T_CPU(0));

    Savez vous comment créer une tâche périodique qui n'attend pas d'avoir fini son traitement pour être relancée ?

    Merci beaucoup.
    Bonne journée.

  4. #4
    Membre confirmé

    Inscrit en
    Février 2007
    Messages
    202
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 202
    Billets dans le blog
    1
    Par défaut Même après tout ce temps
    ... ce tuto est toujours nécessaire et utile.

    Je tenais à le souligner, car ayant acheté le (très bon) livre de C. Blaess , le seul ?, j'ai trouvé ici des explications sur certains passages plus approfondies ou parfois plus claires pour moi. J'ai aussi apprécié la façon graduelle avec laquelle sont amenés les concepts; Par exemple dans "V-B-5 - Interrupt shield : sus aux interruptions !".

    Même si l'on est pas légion ici, peut-on espérer avoir des ajouts ? des concepts supplémentaires et d'autres choses qui ont évolué depuis.
    Voire même, j'ose, un moyen d'expérimenter sur une carte Beaglebone par exemple.

    En tout cas merci.

  5. #5
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Par défaut
    Bonjour.

    Citation Envoyé par dlewin Voir le message
    car ayant acheté le (très bon) livre de C. Blaess , le seul ?
    Si la question était, C. Blaess n'as-t-il rédigé qu'un seul livre ? La réponse est non

    Idriss

  6. #6
    Membre confirmé

    Inscrit en
    Février 2007
    Messages
    202
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 202
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par ok.Idriss Voir le message
    Bonjour.
    Si la question était, C. Blaess n'as-t-il rédigé qu'un seul livre ? La réponse est non
    Idriss
    Bonjour,

    Non ce n'était pas la question : j'ai d'autres livres de cet auteur notamment sur les API Linux. Disons que comme ici il est question de Xenomai, je m'étonne toujours que ce soit le seul livre car même en cherchant sur amazon aux US, il n'y a pas de livre dédié là-dessus.

  7. #7
    Membre confirmé

    Inscrit en
    Février 2007
    Messages
    202
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 202
    Billets dans le blog
    1
    Par défaut Retours
    Bonjour,

    Bon étant donné l'activité faible du forum je reviens avec notament :

    Des màj
    En utilisant Xenomai 2.6.3 (sur une BeagleBone Black que j'ai en 3.8.13Xenomai-bone33) il se trouve que :


    • L'APC est le mécanisme qui optimise de la prise en compte des handlers d'interruption
    • VII-D - Que se passe-t-il ?
      :

    -en regardant dans /proc/xenomai il n'y à pas de hal et je n'ai pas trouvé de référence sur le site du projet qui expliquait cela
    - /proc/xenomai/registry est maintenant : /proc/xenomai/registry/usage . Il n'y à rien d'autre dans registry et l'on peut avoir des choses comme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    slots=512:used=1:exported=0

    • XI-A - Fonctionnalités Le but de cette application est de simuler un GPS. Elle est de type commande/contrôle


    De façon général ce tutoriel est plus que passionnant: pratique et utile de par ses conseils
    X-C-3 - Tests de bon fonctionnement bas niveau
    relève du bon sens et de l'évidence, mais il faut juste y avoir pensé. Ou encore la manière d'aborder un projet concret comme le GPS particulièrement bien approfondit : affectation des priorités, variables globales, etc..
    Le seul côté "dommage" est le cas d'utilisation d'un simulateur de GPS. Est-il possible d'imaginer une évolution de ce tutoriel pour avoir un autre cas concret d'application décrit comme ici et que l'on pourrait reproduire facilement maintenant que les cartes embarquées sont largement disponibles la beaglebone ou la raspberry ? Je me serai bien proposé, mais je n'ai pas encore le recul suffisant.

    La plupart des liens que l'on connaissait comme captain planet ont disparu et/ou sont obsolètes. Celui qui m'est plus utile reste le lab
    Et pour finir si ça peu aider, j'ai rassemblé les sources dans le fichier qui est joint : Dchabbal.7z

    DL

  8. #8
    Invité de passage
    Femme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Mars 2015
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Mars 2015
    Messages : 1
    Par défaut Tache Xenomai deconnectée de la tache linux qui la cree
    Bonjour,
    Nous avons deux taches : une tache linux qui lance cette tache xenomai et avec laquelle elle échange pour des échanges de données. Assez regulièrement, la tache xenomai ne récupère pas les données qui lui permettrait de faire certaines actions et ne renvoie rien non plus. Un kill de la tache linux, ne permet pas de retablir la situation et il faut rebooter le PC. Avez vous des idées ?
    La tache linux tourne sous centos 2.6.
    Merci

Discussions similaires

  1. Premier pas avec net : gestion des fichiers ini
    Par fredppp dans le forum VC++ .NET
    Réponses: 6
    Dernier message: 30/03/2007, 11h24
  2. Premier pas avec PHP
    Par ouahid32 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 14/02/2007, 10h34
  3. [debutant] premier pas avec le SDK directX9
    Par arno2004 dans le forum DirectX
    Réponses: 6
    Dernier message: 27/05/2004, 21h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo