2. 2.1 Priorités et ordonnancement
Le scheduler FreeRTOS est préemptif et basé sur les priorités. La tâche de plus haute priorité prête à s'exécuter prend le CPU immédiatement, sans attendre la fin du time-slice de la tâche courante.
Priorité 5 [task_sensor] ████░░░░████░░░░████ — haute, peu de CPU (bloquée sur capteur)
Priorité 3 [task_display] ░░░░████░░░░████░░░░ — moyen
Priorité 1 [task_wifi] ░░░░░░░░░░░░░░░░░░██ — bas, CPU résiduel
Priorité 0 [idle task] gère la mémoire libérée par les tâches supprimées
Règles pratiques :
- Tâches temps-réel (capteurs, interruptions) → priorité haute (4-5)
- Traitement / affichage → priorité moyenne (2-3)
- Réseau, logs, non-critique → priorité basse (1)
- Ne jamais utiliser la priorité 0 (réservée idle task)
- Ne jamais utiliser configMAX_PRIORITIES - 1 (réservée timer daemon)
La priorité peut être modifiée dynamiquement avec vTaskPrioritySet(handle, new_priority).