ven, 13/02/2009 - 10:27 par Dom
Type:
Introduction à chibiOS/RT
Introduction
Afin de proposer par la suite des programmes génériques aux processeurs ARM et d'utiliser au mieux les capacités de notre micro-contrôleur, nous avons décidé d'implémenter un noyau temps réel sur notre carte.
Bénéficiant du large choix de noyaux temps réel existants et de la notoriété des processeurs ARM, un choix conséquent de noyaux déjà portés sur notre architecture s'offrait à nous. En particulier peuvent être cités freeRTOS et µC/OS-II, tous deux portés sur de multiples architectures et bien documentés (en anglais). Toutefois, nous avons décider d'utiliser chibiOS/RT car outre son existence pour notre architecture, il a déjà été partiellement porté sur notre carte, d'où un gain de temps considérable pour nous.
Insistons bien sur le fait que plus qu'un portage sur l'architecture ARM, ce noyau a commencé à être adapté à la configuration exacte de la carte de prototypage que nous souhaitons utiliser, et est fourni avec un programme de démonstration. De plus, ce projet indépendant très récent nous a semblé prometteur et nous tenions à remercier Giovanni Di Sirio pour avoir commencé le portage et fait la partie la plus dur du travail: l'assembleur bas niveau requis par la processeur. ( => lien vers le site officiel <= )
Pour une documentation plus abondance de chibiOS concernant son fonctionnement et sa mise en oeuvre, consultez les pages d'aide de chibiosVF; la mouture d'axiomcafé!
Vocabulaire
ChibiRT/OS, que nous abrégerons par la suite en chibiOS est un noyau temps réel préemptif et multi-tâches. En vrac, citons qu'il permet la gestion des threads, des sémaphores, des mutex, des événements, du temps, et des chaînes d'entrées-sorties.
Noyau:
Le noyau est une API (Application Programming Interface), c'est à dire un ensemble de fonctions offrant une couche d'abstraction matérielle et apportant des fonctionnalités élémentaires tels que l'ordonnancement des tâches, la gestionnaire de mémoire, les appels système et la gestion du matériel.
Système temps réel:
Un système est dit temps réel ou réactif quand il est caractérisé par une latence (c'est à dire un temps de réponse) bornée.
C'est là une définition académique, basée sur les contraintes imposées par les applications, qui pourrait aussi bien s'appliquer au déclenchement d'un airbag qu'aux prévisions météo. Dans un cas comme dans l'autre, si la réponse du système arrive trop tard, elle n'est plus d'aucun intérêt.
(Jacques-Oliver KLEIN, Prof. Université Paris SUD 11)
Système préemptif:
Un système est dit préemptif s'il est capable de gérer l'ordonnancement des tâches en interrompant une tâche au profit d'une autre de priorité supérieure.
Evenement:
Un événement est une excitation extérieure sur le système. Deux événements ne peuvent être simultanés.
Thread:
Un thread, ou tâche, est un flux d'instruction partageant le même espace mémoire avec d'autres threads. Il partage donc ses variables avec d'autres.
Mutex:
Un mutex est une technique utilisée pour sérialiser l'accès à une ressource pour plusieurs threads. Cette variable est binaire, les threads ayant accès à la ressource les uns après les autres.
Sémaphore:
Une sémaphore restreint le nombre d'accès simultanés à une ressource partagée. Cette variable est décimale. On peut la ramener à un mutex en limitant sa valeur maximale à 1.
Vous avez aimé ? Offrez-nous le café !
Pas tout compris? Laissez un commentaire ou contactez-nous !