Open Silicium N°
Numéro
9

Optimisation du temps de boot

Temporalité
Décembre 2013 / Janvier / Février 2014
Image v3
Optimisation du temps de boot
Article mis en avant

Résumé

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.

Dans ce numéro...


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.
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.

Magazines précédents

Les derniers articles Premiums

Les derniers articles Premium

Le combo gagnant de la virtualisation : QEMU et KVM

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

C’est un fait : la virtualisation est partout ! Que ce soit pour la flexibilité des systèmes ou bien leur sécurité, l’adoption de la virtualisation augmente dans toutes les organisations depuis des années. Dans cet article, nous allons nous focaliser sur deux technologies : QEMU et KVM. En combinant les deux, il est possible de créer des environnements de virtualisation très robustes.

Brève introduction pratique à ZFS

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Il est grand temps de passer à un système de fichiers plus robuste et performant : ZFS. Avec ses fonctionnalités avancées, il assure une intégrité des données inégalée et simplifie la gestion des volumes de stockage. Il permet aussi de faire des snapshots, des clones, et de la déduplication, il est donc la solution idéale pour les environnements de stockage critiques. Découvrons ensemble pourquoi ZFS est LE choix incontournable pour l'avenir du stockage de données.

Générez votre serveur JEE sur-mesure avec Wildfly Glow

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Et, si, en une ligne de commandes, on pouvait reconstruire son serveur JEE pour qu’il soit configuré, sur mesure, pour les besoins des applications qu’il embarque ? Et si on pouvait aller encore plus loin, en distribuant l’ensemble, assemblé sous la forme d’un jar exécutable ? Et si on pouvait même déployer le tout, automatiquement, sur OpenShift ? Grâce à Wildfly Glow [1], c’est possible ! Tout du moins, pour le serveur JEE open source Wildfly [2]. Démonstration dans cet article.

Body