Un système d’exploitation embarque est un système d’exploitation pouvant être installer sur un système embarque .
Ce système d’exploitation est conçu avec des spécificités à gérer afin de répondre a des besoin spécifique au type de système .
Il existe plusieurs OS embarqués :
eCOS, FreeRTOS, VxWorks,RTX, RTLinux…. Etc.
2. partie Soft
Partie Hard
* Il sont partout :
Radio/réveil
Machine à café
Télévision / télécommande
Moyen de transport
Téléphone portable ….
Un Système embarqué est défini comme un système électronique et
informatique autonome, souvent temps réel, spécialise dans une tache bien
précise ses ressources sont généralement limitées
Le Système comprend une partie matériel et une partie logicielle
2
3. • Pas d’E/S standards.
• Matériel et application liés.
• Pas de consommation d’énergie inutil.
• Une capacité de communication limitée.
• Ne possède pas toujours de système de fichiers .
• Une puissance de calcul limitée.
• Autonome.
• Fiable.
3
4. Un système d’exploitation embarque est un système d’exploitation
pouvant être installer sur un système embarque .
Ce système d’exploitation est conçu avec des spécificités à gérer afin
de répondre a des besoin spécifique au type de système .
Il existe plusieurs OS embarqués :
eCOS, FreeRTOS, VxWorks,RTX, RTLinux…. Etc.
4
5. Embedded Configurable Operating System (Systeme d'exploitation
embarque configurable).
C'est un système d'exploitation embarque et temps réel. La spécificité
d'eCos est d‘étre extrêmement configurable : il est possible de choisir
quelles fonctionnalités y intégrer et de les paramétrer, et qui permet
d'optimiser au maximum pour le matériel utilisé et les logiciels qui
fonctionneront dessus. Grace a cette spécificité qu'il s'appelle « eCos
».
• Un système configurable.
• Son code est écrit en C++.
• Le système est jeune (né en 1997).
• Puissant .
5
7. Hardware Abstraction Layer (HAL, couche d'abstraction matérielle) est
une couche logicielle qui permet d'isoler les spécificités matérielles de
la couche logicielle. C’ est à dire un intermédiaire entre OS et le
matériel .
Le Kernel est le noyau du système eCos. Le Kernel d'eCos fournit tout
les fonctions standards d'un OS temps-réel :
•Gestion des exceptions.
•Gestion des interruptions
•Ordonnancement
• Thread.
•Synchronisation mécanisme.
La procédure de démarrage du kernel est lancé a partir de HAL. 7
8. Le cœur du noyau d'eCOS est l'ordonnanceur . Le travail de
l'ordonnanceur est de sélectionner le thread appropriées pour
l‘éxecution.
eCOS soutient deux ordonnanceurs différents «bitmap et multilevel
queue ».
1.Multilevel Queue:
Chaque thread lors de sa création posséde une priorité entre 0 (priorité
la plus élevée) et 31 (priorité la plus basse). La gestion entre les
threads de priorités différentes se fait par préemption (changement de
contexte stopper l’execution d’un thread moins prioritaire).
La gestion entre les threads de même priorité se fait par fenêtre de
temps d’éxecution (chaque thread s'execute pendant un temps
8
10. 2.Bitmap:
L'ordonnanceur bitmap permet l'execution de threads à niveaux
multiples de priorité, mais un seul thread peut exister a chaque niveau
de priorité.
Le nombre de niveaux de priorité est une option de configuration à
partir de1 à 32, correspondant aux numéros de priorité 0 (priorité la
plus élevée) a 31 (priorité la plus basse).
10
12. Fonctions API pour ordonnanceur:
1/ cyg_scheduler_start():Demarre l’ordonnanceur, bitmap ou multilevel
queue, selon les options de configuration sélectionnées.
2/ cyg_scheduler_lock():Verrouillage de l'ordonnanceur, empechant tout
les autres threads d’executer.
3/ cyg_scheduler_unlock():Cette fonction decremente le compteur de
verrouillage ordonnanceur. Threads sont autorises a executer lorsque la
serrure ordonnanceur atteint le compteur 0.
4/cyg_scheduler_read_lock():Retourne l'etat actuel de la lock
ordonnanceur.
12
13. Thread: Un processus léger qui execute un ensemble des instructions.
Chaque thread définies dans le système eCos contient son propre
contexte ou espace de travail, eCos offre des options de configuration
qui contrôlent le comportement de threads.
Les fonctions API:
1/ cyg_thread_create():Crée un thread dans un état suspendu.
2/ cyg_thread_exit() : permet a un thread de se terminer.
3/ cyg_thread_release(): permet la libération de la mémoire utilisée par
un thread qui s'est termine.
13
14. 4/ cyg_thread_yield() : permet de préempter un thread afin de plus
favoriser l'execution qu'un autre thread de même niveau de priorité.
5/ cyg_thread_kill() : force la terminaison d'un thread.
6/ cyg_thread_delay() : Place le thread dans un état de sommeil.
La bibliothèque correspondante est :
#include > cyd/kernel/kapi.h<
14