Bonjour.
La bibliothèque spidev.h est-elle thread safe ?
Je suis en train de développer un projet avec un raspberry PI4-B et 6 cartes STM32.
Les cartes sont interfacées avec le raspberry en SPI.
J’ai testé toutes ces interfaces, pas de problème, tout va bien.
Maintenant que je m’attaque à l’architecture du logiciel sur la Raspberry, je vois qu’il serait naturel d’avoir plusieurs threads, chaque thread gérant une partie des intefaces (typiquement, un thread pour les spi en entrée, un thread pour les exploiter et calculer les sorties, un thread pour l’UI, un thread pour les SPI de sortie).
Pour faire cela, il faudrait que le driver SPI soit « thread safe » , c’est à dire pouvoir être appelé par 2 fonctions différentes (2 thread) sans créer d’erreur.
Je n’arrive pas à trouver cette information. Je cherche probablement mal, mais si quelqu’un à l’information.
En clair, la bibliothèque spidev.h est-elle thread safe ???
Existe-il une autre bibliothèque utilisable en multi-thread ?
Si ce n’est pas thread safe, je vais être obligé de cadencer les entrée/sorties, ce qui est bêtement plus compliqué. Mais faisable.
Pour donner une idée du projet, les cartes STM32 gèrent 46 mini-écran, 52 boutons, 50 faders, 3 potar numériques, 5 lignes DMX512. Bref, pour gérer tout cela sans s’y perdre, le plus évident est de faire du multi-thread.