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 :

Débuté sous Linux embarqué


Sujet :

Linux

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Avril 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2012
    Messages : 10
    Points : 15
    Points
    15
    Par défaut Débuté sous Linux embarqué
    Bonjour tout le monde,

    Cela fait quelques mois que j'essaye de récolter des informations sur "comment développer une application embarquée sous Linux ?" De ce fait, j'ai lu énormément d'articles sur le sujet et jusqu'à présent, ça reste flou pour moi. Pour info, j'ai seulement travaillé 2 mois au cours d'un stage hors embarqué sur un PC équipé d'une distribution Ubuntu sur un projet d'imagerie médicale (ça remonte à 3 ans). En effet, Passionné de l'embarqué, je développe en langage C sur microcontroleur PIC et j’intègre dans mes applications des interfaces de communication industrielles comme CANopen, Modbus et un protocole maison. Cependant, je souhaiterai me lancer sur du TCP/IP (je pense bien maîtrisé théoriquement le modèle en couche puis quelques exemples de sources). Personnellement, j'ai envi de basculer sur le développement Linux embarqué par curiosité et dans le but de renforcer mes compétences. Voici quelques questions permettant de m’éclaircir les idées :

    1. Un programme embarqué classique sans OS se démarre juste après la mise sous tension de la carte au main.c, alors comment ça se passe pour un OS embarqué ?

    2. Si je dispose d'une application sans OS communiquant par liaison série, comment pourrais-je intégrer cette même application dans un OS embarqué ? L'accès aux GPIO (ports d'entrée/sortie) se ferra aussi simplement qu'avec sans OS (par exemple piloter une led) ?

    3. Un programme C sur PIC est dit séquentiel, alors avec un OS, mon programme s'exécutera de quelle manière ?

    4. Et la question au-quelle je n'arrête pas de me poser : qu'est ce qu'un OS embarqué peut apporter à une application ?

    Je reconnais que mes questions sont assez vagues mais je pourrai surement les préciser suivant vos différentes réponses que j'attends avec impatience !!

    Merci à vous.

    Cordialement,

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 395
    Points : 23 758
    Points
    23 758
    Par défaut
    Hello,

    J'ai comme toi bricolé plusieurs micro-contrôleurs sans réellement toucher aux O.S. embarqués, mais voici ce que je peux en dire :

    Citation Envoyé par Sissroh Voir le message
    1. Un programme embarqué classique sans OS se démarre juste après la mise sous tension de la carte au main.c, alors comment ça se passe pour un OS embarqué ?
    Soit c'est le noyau qui est modifié pour n'embarquer que le nécessaire et qui contient directement le binaire de l'application, soit on met place le « minimum syndical » attendu par le système d'exploitation, à commencer par un volume de stockage qui peut être un SSD ou une mémoire Flash. L'O.S. monte alors ce volume comme une partition ordinaire et y lance des programmes comme il le ferait sur une machine de bureau.

    2. Si je dispose d'une application sans OS communiquant par liaison série, comment pourrais-je intégrer cette même application dans un OS embarqué ? L'accès aux GPIO (ports d'entrée/sortie) se ferra aussi simplement qu'avec sans OS (par exemple piloter une led) ?
    L'intérêt d'utiliser un O.S. est de faire de la programmation système. Donc a priori, pour gérer le port série, il vaut mieux là encore le faire comme tu le ferais sur un ordinateur personnel en ouvrant le fichier spécial correspondant. Maintenant, si le système ne dispose pas du pilote correspondant et/ou pour les parties matérielles spécifiques à ton environnement, tu peux effectivement les piloter directement mais il te faudra peut-être, pour cela, demander au système l'autorisation d'accès à ces ports, voire écrire une section de code en mode noyau.

    Pour des choses comme un GPIO attaquant une ou plusieurs LED, en revanche, ça devrait rester très simple, et tu dois pouvoir l'attaquer directement.

    3. Un programme C sur PIC est dit séquentiel, alors avec un OS, mon programme s'exécutera de quelle manière ?
    Ça dépend du type de micro-processeur embarqué dans ton matériel. Pour les plus gros, ça peut être un processeur de PC, auquel il n'y aurait plus grand chose qui distinguerait ton programme embarqué d'un programme ordinaire.

    En pratique, les programmes en langage machine sont toujours séquentiels, même s'il arrive qu'ils soient multi-threadés et parallélisés de cette façon.

    4. Et la question au-quelle je n'arrête pas de me poser : qu'est ce qu'un OS embarqué peut apporter à une application ?
    L'intérêt est le même que sur une machine de bureau. C'est aussi le même que tu vas trouver à programmer un PIC en langage C plutôt que directement en assembleur : profiter de l'existant et éviter d'avoir à reprendre à chaque fois et depuis zéro un travail qui peut être considérable.

    Si tu programmes de menus micro-contrôleurs dans le but d'allumer des LED ou de piloter des automatismes rudimentaires (par exemple pour ouvrir ou fermer des vannes d'arrosage à heures fixes), il est plus simple d'écrire directement un programme conçu pour ton micro-contrôleur sans t'embarrasser de dépendances inutiles.

    Par contre, si ton système embarqué est une box Internet, par exemple, il te faudra réécrire une pile TCP/IP complète, un filtre et un routeur réseau, un mini-serveur web d'administration et le système de téléphonie. Si tu fais du triple play moderne, il faudra gérer simultanément la régulation du flux TV, l'affichage à l'écran, la gestion de la télécommande et les applications interactives lancées par l'utilisateur.

    Il est alors beaucoup plus intéressant de produire un mini-PC qui embarque un Linux et un VLC. Il n'y a alors pratiquement rien à concevoir : le matériel comme le logiciel sont déjà au point. De la même façon, les tâches demandées sont complexes et il est donc assez intéressant d'utiliser d'emblée un système existant qui a déjà formalisé et documenté tout cela.

    Tout l'enjeu de l'embarqué, à ce moment-là, consistera non pas à fonctionner avec du matériel restreint mais à faire preuve de résilience, c'est-à-dire être capable de retomber automatiquement sur ses pattes en cas d'imprévu sans intervention extérieure.

    C'est vital lorsque tu n'as pas accès au matériel, soit parce qu'il est chez un client, soit parce qu'il est très loin géographiquement, soit parce qu'il est produit en trop grand nombre. Si tu as distribué 2.000.000 de boxes, tu ne pourras pas humainement les dépanner en cas de pépin. Tu as alors intérêt à concevoir du matériel qui se débrouille seul. C'est encore plus vrai si tu envoies un satellite ou une sonde spatiale, mais cela ne concerne que très peu d'entre nous…

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Avril 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2012
    Messages : 10
    Points : 15
    Points
    15
    Par défaut
    Bonjour,

    J'ai enfin décider de passer à l'acte !! Donc pour ça, je suis entrain de chercher une carte de développement disposant au moins d'une interface RJ45, RS232 et ou L'USB. De préférence basé sur un processeur type ARM.

    Est ce que vous pouvez me guider sur un bon produit. Sachant, que je suis débutant et que c'est juste pour mes projets à domicile.

    Merci d'avance.

Discussions similaires

  1. Réponses: 1
    Dernier message: 05/01/2011, 15h04
  2. Temps réel Embarqué sous linux
    Par naima2005 dans le forum Administration système
    Réponses: 1
    Dernier message: 08/01/2007, 06h46
  3. Système embarqué sous linux
    Par chikenfrag dans le forum Applications et environnements graphiques
    Réponses: 12
    Dernier message: 16/07/2006, 00h14

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