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

POSIX C Discussion :

Utiliser les threads POSIX sans OS


Sujet :

POSIX C

  1. #1
    Membre � l'essai
    Homme Profil pro
    Ing�nieur syst�mes embarqu�s
    Inscrit en
    Juin 2015
    Messages
    4
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 35
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur syst�mes embarqu�s
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2015
    Messages : 4
    Par d�faut Utiliser les threads POSIX sans OS
    Hello,

    Je souhaite d�velopper une application en C qui utilise des threads POSIX pour une carte STM32F4-discovery. Je n'ai pas pr�vu de mettre un OS temps r�el sur la carte, j'utilise simplement les librairies de ST et je cross compile mon appli avec gcc-arm-none-eabi.

    Savez-vous s'il est possible d'utiliser POSIX sans OS ? ou faut-il obligatoirement un OS temps r�el qui impl�mente cette surcouche POSIX ?

    Dans les libs fournies avec gcc-arm-none-eabi, j'ai bien un fichier posix.h, mais les prototypes des fonctions sont entour�es par un #if defined (RTEM), ce qui me pousse � penser qu'on ne peut utiliser POSIX que dans ce cas ? Sur les forums POSIX, j'ai l'impression que tout le monde utilise soit un OS, soit cygwin.

    Merci pour votre aide,
    Marc

  2. #2
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    J'ai du mal � comprendre la question. Qu'appelles-tu POSIX ici?

    Parce que le standard POSIX de base n'a pas grand-chose � voir avec le fait qu'un OS soit temps r�el ou non, c'est un ensemble de fonctions que le runtime C (et dans le cas des appels syst�me, l'OS) doit mettre � disposition des programmes...

    Si c'est pour les fonctions de multithreading de POSIX, elles sont de nos jours construites sur l'OS, et m�me quand ce n'est pas le cas elles n�cessitent un minimum de support de sa part (au minimum une temporisation capable d'interrompre le flux normal d'un programme, comme alarm()/SIGALRM).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre � l'essai
    Homme Profil pro
    Ing�nieur syst�mes embarqu�s
    Inscrit en
    Juin 2015
    Messages
    4
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 35
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur syst�mes embarqu�s
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2015
    Messages : 4
    Par d�faut
    Merci M�dinoc pour ta r�ponse.
    Oui, je m'exprime mal, en effet (ma question n'a rien avoir avec le temps r�el et quand je parle de posix, je parle des fonctions pthreads posix)

    Sur Linux (ou Cygwin), j'ajoute un #include <pthread.h> qui me permet d'utiliser les fonctions POSIX relatives aux threads (pthreade_create...).
    De ce que je comprends de ta r�ponse, c'est l'OS qui permet �a ?

    Si je reformule ma question, �a donne :
    Est-ce qu'il est possible de faire la m�me chose mais en compilant (avec gcc-arm-none-eabi) pour une carte qui n'h�berge pas d'OS ?

    J'esp�re avoir �t� un peu plus clair
    Marc

  4. #4
    Responsable Syst�mes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Ao�t 2011
    Messages
    18 300
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Gestion de parcs informatique
    Secteur : High Tech - Mat�riel informatique

    Informations forums :
    Inscription : Ao�t 2011
    Messages : 18 300
    Par d�faut
    Ca me parait pas gagn�, les fonctions POSIX sont dans les appels syst�mes, donc sans OS ... Je pense qu'il te faut au moins une libc peut-�tre genre �-libc
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  5. #5
    Mod�rateur

    Avatar de Bktero
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 494
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 494
    Billets dans le blog
    1
    Par d�faut
    Tu souhaites faire des threads, mais tu ne souhaites pas avoir d'OS ? Quelque chose m'�chappe... Les threads, c'est un peu la base des OS modernes.

    POSIX d�finit un ensemble d'API pour des fonctionnalit�s communes, comme cr�er des threads, ouvrir une socket, etc. POSIX ne veut pas dire OS, surtout dans l'embarqu� o� la notion d'OS n'a pas vraiment la m�me notion que sur PC. En effet, un OS pour PC fournit des threads et aussi tous les m�canismes de drivers, de syst�mes de fichiers, d'affichage, etc, et les API sont compatibles POSIX. Ce n'est pas le cas dans l'embarqu� o� un OS est g�n�ralement limit� aux threads, aux s�maphores / mutex, files de messages, etc, souvent non compatibles POSIX. Mais tu peux donc trouver des syst�mes de fichiers POSIX sans avoir d'OS, �a me semble envisageable.

  6. #6
    Membre � l'essai
    Homme Profil pro
    Ing�nieur syst�mes embarqu�s
    Inscrit en
    Juin 2015
    Messages
    4
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 35
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur syst�mes embarqu�s
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2015
    Messages : 4
    Par d�faut
    Hello,

    Merci pour vos r�ponses.
    Ce n'est pas franchement que je ne veux pas utiliser d'OS, c'est plut�t pour savoir si c'�tait n�cessaire/recommand� pour utiliser les threads posix ou si on pouvait faire sans.
    De ce que je comprends, les OS (et notamment les OS temps r�els) sont justement fait pour �a. Autant donc les utiliser
    Plus qu'� trouver lequel, je vais me renseigner, merci.

    Marc

  7. #7
    Mod�rateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber S�curit�
    Inscrit en
    Mai 2004
    Messages
    10 150
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Manager / Cyber S�curit�

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Par d�faut
    Citation Envoy� par Marc9101 Voir le message
    Je souhaite d�velopper une application en C qui utilise des threads POSIX pour une carte STM32F4-discovery. Je n'ai pas pr�vu de mettre un OS temps r�el sur la carte, j'utilise simplement les librairies de ST et je cross compile mon appli avec gcc-arm-none-eabi.

    Savez-vous s'il est possible d'utiliser POSIX sans OS ? ou faut-il obligatoirement un OS temps r�el qui impl�mente cette surcouche POSIX ?
    Tr�s simple : est-ce que les librairies fournies par ST pour cette carte supportent les threads POSIX ou non ? Si oui, tu n'as besoin de rien, et si non, tu dois avoir quelque chose qui les impl�mente ; ce quelque chose peut-�tre du code "maison", un OS, des lib tierces, ...

  8. #8
    Mod�rateur

    Avatar de Bktero
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 494
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 494
    Billets dans le blog
    1
    Par d�faut
    Citation Envoy� par Marc9101 Voir le message
    Plus qu'� trouver lequel, je vais me renseigner, merci.
    Je te conseille FreeRTOS. Simple, gratuit, efficace.

    http://freertos.org/

  9. #9
    Membre � l'essai
    Homme Profil pro
    Ing�nieur syst�mes embarqu�s
    Inscrit en
    Juin 2015
    Messages
    4
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 35
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur syst�mes embarqu�s
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2015
    Messages : 4
    Par d�faut
    Oui je suis parti sur FreeRTOS apr�s quelques recherches, tu confirmes mon choix, merci
    Marc

  10. #10
    Mod�rateur

    Avatar de Bktero
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 494
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 494
    Billets dans le blog
    1
    Par d�faut
    Bon ben on est d'accord !

    J'aime cet OS, je l'utilise dans le cadre du boulot. L'usage est presque limit� aux threads et s�maphores et je trouve qu'il a l'avantage d'�tre tr�s simple � mettre en oeuvre. J'ai d� mettre moins de 2 heures � faire des threads qui font clignoter des LED sur un carte de d�mo IAR en prenant les projets exemples IAR et en rajoutant moi-m�me l'OS. La documentation est bien. Je ne suis pas fan de la notation hongroise mais l'API est assez agr�able. C'est gratuit. Il y a des exemples pour des tas de cartes.

    Je pense que �a devrait r�pondre � ton besoin. Tu nous diras si ce n'est pas le cas

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Utiliser les threads dans application Struts
    Par rach375 dans le forum Struts 1
    R�ponses: 7
    Dernier message: 18/09/2006, 11h32
  2. Pourquoi utiliser les fonctions POSIX ?
    Par sportBlond dans le forum Langage
    R�ponses: 5
    Dernier message: 04/09/2006, 17h11
  3. Comment utiliser les Threads en VC++?
    Par mambo dans le forum MFC
    R�ponses: 2
    Dernier message: 16/06/2006, 14h04
  4. BeginInvoke (utiliser les threads)
    Par the big ben 5 dans le forum Delphi
    R�ponses: 6
    Dernier message: 16/05/2006, 18h30
  5. question sur les variables globales et les thread posix
    Par souris_sonic dans le forum POSIX
    R�ponses: 5
    Dernier message: 13/06/2003, 13h59

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