TP3 RTOS
1.0
Implémentation d'un RTOS sur une jetson nano
|
L’objectif de ce TP est de nous initier à la programmation de systèmes en temps réel sous Linux, en particulier avec la carte Jetson Nano. Ce travail pratique est conçu pour nous apprendre :
pthread
).Ce projet nous permet d’acquérir des compétences essentielles en gestion du temps dans les systèmes embarqués, en particulier :
struct timespec
pour manipuler le temps avec précision (en
microsecondes).Ces compétences sont fondamentales dans des applications critiques, comme la robotique ou l’IoT, où la précision temporelle est primordiale.
Nous développons une bibliothèque contenant des fonctions pour :
timespec
en microsecondes
(timespec_to_micros
).timespec
(timespec_add
).timespec
d’une autre
(timespec_sub
).Ces fonctions sont implémentées dans les fichiers suivants :
src/utimes.c
include/utimes.h
À partir des fonctions développées, nous utilisons les threads pour :
Nous concevons une architecture fonctionnelle qui :
Les premières vérifications sont effectuées à l’aide de Unity, une bibliothèque de tests unitaires
pour le langage C. Ces tests vérifient les fonctions de la bibliothèque utimes
:
timespec
en microsecondes.timespec
.Pendant la séance de TP, nous testons le fonctionnement de la bibliothèque et des threads en conditions réelles. Les tests incluent :
trigger
et echo
: Test des interactions
pour garantir une mesure précise de la distance.Enfin, la bibliothèque et le système sont portés sur un Raspberry Pi. Tous les tests réalisés sur la Jetson Nano sont répétés, à une exception près : la bibliothèque utilisée pour gérer les GPIO est spécifique au Raspberry Pi. En dehors de ce détail, l’ensemble des tests reste identique.
Voici une vidéo illustrant le fonctionnement du projet :
Pour plus de détails sur l'implémentation et l'utilisation des fonctions et threads, veuillez consulter la documentation complète.