Les contraintes de développement sur un système embarqué






Les contraintes de développements sur un système embarqué sont nombreuses et se rapprochent assez de celles rencontrées en informatique en général:
  • La compléxité des alogrithmes utilisés doit être relativement faible d'autant plus que les performances et la puissance des systèmes est moindre.
  • L'absence de MMU limite la taille des applications.
  • L'absence de media de stockage permanent..
  • De nombreuses applications des systèmes embarquées sont des applications temps réels: On doit souvent ajouter une contrainte temps-réel.
  • L'utilisation d'outils de Genie Logiciel est fortement conseillé
  • La conception orientée objet est préconisée dès que cela est possible
  • Compléxité des algorithmes

    Du fait d'une puissance de calcul et d'une mémoire limité, on préférera des algortihmes peu complexe sur un système embarqué. Par exemple, l'utilisation de la récursivité sur des systèmes à faible performance est peu recommandée. La principale limitation est due à l'absence, sur de nombreux système, d'une Unité de Gestion de la Mémoire (MMU).

    Absence de MMU

    L'absence de MMU rend impossible la gestion de la mémoire virtuelle. Les processus se retrouvent donc très vite limité en mémoire car ils doivent tous partager le même espace mémoire, y compris la pile. Par ailleurs, cela rend impossible l'appel système fork() traditionnel tel que nous le connaissons sous UNIX: fork() crée un processus fils à partir d'un d'un processus père en recopiant les zones mémoires du processus père. Sans MMU, cela est rendu impossible car le système ne peut pas retrouver les zones mémoire destinées au père ou au fils. Nous verrons plus tard comment créer des processus sur un système ne disposant pas de MMU.

    Absence de medium de stockage permanent

    Les systèmes embarqués sont généralement dépourvus d'unité de stockage telle qu'un disque dur ou une bande magnétique. La sauvegarde des données est généralement faite en ROM ou en mémoire FLASH. L'utilisation de ces mémoires et relativement onéreuse et peu fiable. En cas de crash, les données sont généralement perdus. Il existe cependant des systèmes de fichiers pour FlashRAM journalisés.

    Le temps réel

    Un système fonctionne en temps réel lorsqu'il est capable d'absorber toutes les informations d'entrée sans qu'elles soient trop vieilles pour l'intérêt qu'elles présentent, et par ailleurs, de réagir à celles-ci suffisamment vite pour que cette réaction ait un sens. Les sytèmes embarqués temps réels requierent la présence d'un automate d'ordonnancement adapté au temps réels ( le plus connu: EDF (Earlest Deadline First). Il arrive parfois que ce soient uniquement des systèmes dédiés à une tache, dans ce cas, il n'y a pas d'automate d'ordonnancement, le système execute indéfinniment une seule et même boucle. C'est le cas de l'ABS.

    Le génie logiciel

    Aucune méthode de génie logiciel n'esy spécialement préconisé pour le développement de systèmes embarqués mais le choix d'une méthode est fortement conseillé: Un logiciel pour l'embarqué est en général produit de manière industrielle et les mises à jours coûtent chers. Les erreurs de conception sont plus que jamais très coûteuses. Enfin, on pourra citer UML ( Unified Modeling Language) et SDL ( Specification and Description Language) qui sont deux notations très utilisées pour la modélisation des sytèmes informatiques.

    La conception objet

    La conception objet est recommandée car elle permet la reduction des coûts et la réutilisation du code produit. Là encore, les gains financiers motivent ce choix de conception.

    Ces nombreuses contraintes introduisent un coût important dans le développement d'un système embarqué.

    <-Précédent
    Suivant->