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

  1. #1
    Membre éprouvé

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    novembre 2006
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Transports

    Informations forums :
    Inscription : novembre 2006
    Messages : 320
    Points : 1 008
    Points
    1 008

    Par défaut ESP32 core 0 ou pthread

    Bonjour,

    Je programme mon ESP32-WROOM-32 S1 (ESPRESSIF) avec l'IDE de l'Arduino (type de carte ESP32 Dev Module).

    J'ai créé un sketch pour vérifier l'incrémentation de deux variables qui sont accédées par du code qui tourne sur core 0 ou core 1.
    Le code utilise la librairie pthread et aussi xTaskCreatePinnedToCore() pour définir quel core sera utilisé.
    C'est mon premier exercice dans ce domaine et cela marche bien.

    Le core 1 est utilisé par du code "traditionnel" ou si on définit le core 1 dans xTaskCreatePinnedToCore().
    Le core 0 semble être utilisé par tous les threads définit via des pthread_create(). Test fait avec test 3 threads.

    Maintenant ma question pour mon application, disons, un peu compliquée.
    J'aimerais écrire un Web serveur qui réagit rapidement indépendemment du reste du code (capteur, display, etc).

    Est-il mieux de déposer le code de ce Web seveur avec un xTaskCreatePinnedToCore() ou un pthread_create().
    Ou alors c'est peut-être équivalent!?!
    xTaskCreatePinnedToCore() permet de définir des priorités.

    Merci d'avance à tous

  2. #2
    Rédacteur/Modérateur

    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    janvier 2009
    Messages
    10 537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : janvier 2009
    Messages : 10 537
    Points : 45 573
    Points
    45 573
    Billets dans le blog
    9

    Par défaut

    Salut,

    L'EDI Arduino reprend les outils de l'environnement de développement officiel d'Espressif ESP-IDF (Espressif IoT Development Framework).

    A priori tu utilises donc l'API FreeRTOS qui a été adaptée pour l'ESP32. C'est sûrement très bien comme API

  3. #3
    Membre éprouvé

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    novembre 2006
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Transports

    Informations forums :
    Inscription : novembre 2006
    Messages : 320
    Points : 1 008
    Points
    1 008

    Par défaut

    J'ai programmé un Web serveur, qui marche assez bien, pour l'instant sans core0/1 ni pthread, et je vais y ajouter un ou plusieurs capteurs ou fonctions en parallèle. Je verrai à ce moment-là.

    La solution core0/1 n'est peut-être pas la bonne. Le nouveau ESP32-S2 n'a qu'un seul core.
    Je donnerai des nouvelles avec du code.

  4. #4
    Membre éprouvé

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    novembre 2006
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Transports

    Informations forums :
    Inscription : novembre 2006
    Messages : 320
    Points : 1 008
    Points
    1 008

    Par défaut

    Bonjour,

    Je vais fermer assez rapidement cette discussion dans un ou deux jours. C'est beaucoup trop complexe et je n'ai pas fait de bonnes expériences.
    De plus ce n'est pas vraiment le bon groupe!

    D'une autre discussion:

    Citation Envoyé par f-leb Voir le message
    Va falloir qu'on trouve une solution pour ne pas mélanger les ESP et les Arduino dans le même forum Arduino, sous prétexte qu'on peut les programmer tous les deux dans le même EDI Arduino. On y travaille...
    D'un article de l'an passé, au sujet de l'Arduino: When you need to add WiFi to a project, ESP-based boards are an excellent starting point.

    Mon problème est que j'ai voulu implémenté trop de fonctionnalités sur un de mes ESP32 en essayant les doubles cores.
    Sur un Raspberry Pi, c'est assez facile d'écrire un thread dans une application (ou un processus Linux) pour un serveur Web, un autre pour lire une température et encore un autre pour détecter un mouvement.
    Sur un ESP32, on va peut-être se casser la tête inutilement et chercher, comme moi pendant des heures, pourquoi mon serveur Web sur le core0 ne répond pas trop bien, voire pas du tout.

    Donc je laisse les responsables pour trouver un moyen d'ouvrir un ou d'autres groupes, avec peut-être quelques règles supplémentaires.
    Il y a tellement de gens qui s'intéressent à l'Arduino, qui posent des questions souvent bonnes, sans trop fixer le cadre ou donner plus de détails.

    Moi-même j'ouvre pratiquement tous les jours l'IDE de l'Arduino, mais c'est pour mes ESPs.
    Mon seul Arduino, un Duemilanove, est quelque part, ..., dans mon musée.
    Si je connectais un capteur, un PIR ou un buzzer, sur cet Arduino de 10 ans d'âge, ce serait presque kif-kif bourricot.
    Sauf qu'on est passé à l'internet des objets ou le WiFi est incontournable et s'initialise avec quelques lignes de code, encore une fois, dans un outil qui s’appelle l'IDE de l'Arduino .

    Cordialmente a tutti (le créateur de l'Arduino est italien)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Affecter chaque thread sur un core avec pthread
    Par moktar_bouain dans le forum Linux
    Réponses: 0
    Dernier message: 10/05/2012, 17h50
  2. Pthread et semaphores
    Par Yabo dans le forum Linux
    Réponses: 9
    Dernier message: 30/03/2008, 00h09
  3. Réponses: 1
    Dernier message: 11/06/2004, 11h58
  4. Optimisation du swap sous Fedora Core 2
    Par demeuremichel dans le forum Administration système
    Réponses: 3
    Dernier message: 20/02/2004, 00h52
  5. Réponses: 4
    Dernier message: 27/08/2003, 21h34

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