Bonjour,
La petite découverte du jour pour moi du moins. J'utilise un programme qui utilise pas mal de ressources et je souhaitais rajouter 2 BP pour une gestion complémentaire.
Aucune envie de mettre le nez dans cette usine à gaz alors au gré des recherches, je suis tombé sur un article traitant des 2 cœurs de l'ESP32.
Le setup et la loop sont exécutés par le cœur 1 alors, j'ai utilisé le cœur 0 pour la gestion de mes 2 BP.
Finalement rapide et simple.
La difficulté, avec plusieurs coeurs, est de les synchroniser. Ce n'est ni rapide, ni simple.
Exemple:
- le 1er coeur teste une variable en mémoire, et si elle est non nulle, il fait une action, puis remet la variable à 0
- le 2nd coeur surveille un capteur ou bouton, et sous conditions met la-dite variable à 1.
Que se passe-t-il si, juste après que le 2nd coeur ait mis à 1, le 1er la met à zéro sans l'avoir testée (il était occupé à faire son action) ? et bien ça s'appelle un raté.
Classiquement, l'accès à toute variable pouvant être accédée depuis des threads (des coeurs) différents doit être protégé par un mutex.
Dans mon cas, c'était simple et rapide, car les actions sont indépendantes des tâches en cours (allumer/éteindre le backlight et incrémenter un compteur de durée de fonctionnement).
Il est vrai que les échanges entre les threads sont plus délicates.
J'ai eu l'occasion de me frotter à ce type de problèmes sur une application à base de Raspberry pi.
bonjour icare,
tu te sers du wifi dans ton projet ?
Salut @trimarco232
Oui, j'utilise le wifi dans l'application en question.
Pour faire court, c'est une web radio avec un décodage logiciel des flux mp3 (une véritable usine à gaz). Une demande particulière me demande de rajouter quelques fonctionnalités :
- un BP pour allumer/éteindre le backlight (économie d'énergie, car alimentation accu (fait)
- un BP pour définir un temps de shutdown (15, 30, 60 et 120 min) (fait)
- un shutdown pour accu faible (fait)
- affichage JJ/MM HH:MM à partir d'un serveur NTP (en cours)
Comme ces fonctionnalités sont quasi indépendantes de la web radio, pas besoin de se casser la tête avec les MUTEX.
Pour l'instant, je suis plutôt agréablement surpris par les possibilités de l'ESP32 même si cela devient juste en mémoire.
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.