Les articles de Open Silicium N°9

Image promotionnelle
Optimisation du temps de boot d'un système Linux embarqué
Article mis en avant

Optimisation du temps de boot d'un système Linux embarqué

Pour de nombreuses applications embarquées, la durée de démarrage du système est un facteur crucial dans l'interaction avec l'utilisateur. Je me suis intéressé il y a quelques temps à l’optimisation du temps de boot d’un système embarqué conçu par un client. J’ai décidé d’approfondir un peu le sujet pour déterminer quelles séquences de démarrage méritaient un effort d'optimisation et une méthode de travail.

Noël approche ou éventuellement, si vous ne vous êtes pas jeté frénétiquement sur ce nouveau numéro dès sa mise en vente, est passé dernièrement. Dans les deux cas, j'espère que vous allez avoir, ou avez eu, de beaux nouveaux jouets, démontables, assemblables, soudables, clignotants, communicants, programmables…
La carte Raspberry Pi (RPi) est devenue célèbre grâce à sa simplicité d'utilisation. En effet l'installation se limite à l'insertion une carte SD coûtant quelques euros et contenant l'image de votre système d'exploitation favori (Linux, RTEMS, FreeRTOS, …). Plusieurs autres cartes utilisent ce principe mais le développeur exigeant et expérimenté est habitué à disposer d'un logiciel d'amorçage ou « bootloader » installé sur la carte. Dans cet article nous allons décrire l'utilisation du bootloader U-Boot puis nous verrons son installation sur la carte RPi.
Dans le numéro 6 d'Open Silicium, nous avons décrit l'utilisation du système temps réel RTEMS sur un carte ARM Mini2440. Cette carte était très populaire à l'époque mais a été depuis supplantée par de nombreux produits à la fois bon marché et beaucoup plus performants. La célèbre Raspberry Pi (RPi) est la plus ancienne de cette catégorie et un portage RTEMS est officiellement disponible depuis l'été 2013. Dans cette article nous décrirons la mise en place du BSP RTEMS pour la RPi puis nous mettrons en œuvre un exemple de pilote pour les GPIO de la RPi.
Dans un circuit numérique, il y a toujours une dose d’analogique à l'interface du monde extérieur. Les composants discrets, dit actifs, sont à base de transistor et dans le cadre d’un système numérique, permettent de manipuler la puissance (les signaux forts).
Dans un circuit numérique, il y a toujours une dose d’analogique. Parfois, une carte toute faite comme une Arduino, ou une Raspberry Pi, ne suffit plus; ou bien il faut gérer de la puissance, il faut alors créer une carte.
Quelques considérations sur les particules ionisantes présentes en haute altitude – aspects expérimentaux et d’analyses de données
Soyons clair, le cœur AP7 à la base du SoC de cette carte d'évaluation Atmel est déclaré en fin de vie depuis avril 2013, remplacé par la famille UC3, maintenant représentante unique de l'architecture AVR32. L'objet de cet article n'est pas de traiter la plateforme comme d'une nouveauté mais de simplement montrer qu'une architecture un peu ancienne peu toujours vous être utile.
Le langage VHDL permet de décrire des schémas électroniques sous forme textuelle. La standardisation de ce langage apporte l'avantage de la portabilité du code source vers les compilateurs de silicium des différents fournisseurs de FPGA. Le langage VHDL offre des possibilités étendues de création de composants, de paquetages, de généricité et de gestion de configuration permettant d'assurer une grande réutilisabilité du code réalisé. Nous allons voir dans cette introduction comment créer un projet simple qui nous permettra, en partant de la feuille blanche, d'obtenir les éléments de base de l'affichage d'un écran texte de 80x60 caractères dans un mode vidéo VGA 640x480 pixels. La cible de cette réalisation est la très abordable carte DE0 Nano présentée dans Open Silicium N°6 .Nous aurons donc recours à la suite Quartus II du fabricant Altera. Pour quelques résistances de plus notre réalisation s'affichera en couleurs sur tout bon moniteur informatique.
Modélisez et vérifiez votre programme multi-threads avec Spin, le model-checker open-source.
Construire un système embarqué ou compléter un système existant nécessite la mise en place d'un environnement de développement complet. Ceci comprend le cross-compilateur et les outils associés, un noyau adapté et en jeu d'utilitaires. Dans le cas du Kobo Glo, cross-compiler un simple « hello world » ou un outil permettant d'utiliser convenablement le framebuffer ne pose pas particulièrement de problème avec un environnement « clés en main » comme celui installé via emdebian. Si l'on souhaite passer à une étape supérieure et pouvoir développer des applications plus conséquentes, il faut alors compléter l'installation avec les bibliothèques adéquates.