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

Arduino Discussion :

ESP32 core 0 ou pthread


Sujet :

Arduino

  1. #1
    Rédacteur

    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

  3. #3
    Rédacteur

    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
    Rédacteur

    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)