Bonjour,

Je débute avec FreeRTOS et j'aurai donc besoin de vos lumières.

Je dois :
- traiter des paquets Ethernet en réception
- changer/lire la configuration de mon processus principale
- décrémenter des compteurs toutes les secondes
- envoyer des paquets Ethernet

Mon processus principal doit orchestrer tout ça :
- lorsqu'un paquet Ethernet spécifique est reçu, je dois exécuter mon processus principale
- lorsque mes compteurs sont décrémentés, je dois exécuter mon processus principale
- lorsqu'il y a un changement de configuration, je dois exécuter mon processus principale
=> en fonction du traitement des nouvelles données, mon processus principale doit envoyer des paquets Ethernet.

Actuellement, j'ai créer plusieurs taches :
- une tache (tache 1) qui est appelée toutes les 250ms (niveau de priorité élevée) et qui doit exécuter des taches critiques (dont le temps d’exécution est contrôlé) pour le bon fonctionnement du produit.
- une tache (tache 2) pour gérer la réception de paquets (niveau de priorité normal).
- une tache (tache 3) qui gère la pile logicielle Ethernet (gestion périphérique MAC)(niveau de priorité élevée).

Je pensais donc décrémenter mes compteurs dans ma tache 1 et créer une tache 4 pour gérer mon processus principal qui gérera les nouvelles données (paquet Ethernet, compteur, configuration) et qui enverrait les paquets Ethernet.
=> pensez-vous que c'est la bonne architecture à adopter ?
=> Comment faire pour que ma tache 4 se débloque lorsqu'un nouveau paquet Ethernet est reçu ou que mes compteurs sont décrémentés ou qu'il y a un changement de configuration ? Et comment gérer le cas où il y a de nouvelles données à traiter (ex: un nouveau paquet est reçu) pendant le traitement de ma tache 4 ? Je dois buffuriser certaines données (que faire dans le cas où il n'y a plus de buffer disponible ?) ?

Remarque : l’exécution d'un cycle de la tache 4 en inférieur à 500ms (à condition qu'il y ait des buffers d'émission Ethernet de disponibles).

Merci d'avance,