Édito
La profusion de cartes, SBC et plateformes embarquées de toutes sortes, depuis quelques années déjà, a tendance à nous faire facilement oublier que même si Internet se souvient (théoriquement) de tout, rien n'est éternel.
Bienvenue sur la base documentaire des Éditions Diamond !
Chef des rédactions, Rédacteur en chef du magazine Hackable et GNU/Linux Magazine France - Éditions Diamond
Diplômé en informatique de l’Institut de Promotion Industrielle de Colmar, Denis Bodor est chef des rédactions et rédacteur en chef aux Éditions Diamond.
Rédacteur en chef du magazine GNU/Linux Magazine France de sa création en 1998 jusqu’en 2014 (et à nouveau depuis 2022), ainsi que du magazine Open Silicium de 2011 à 2015, et de Hackable depuis 2014, il se spécialise dans la rédaction d’articles traitant de développement bas niveau, d’informatique embarquée et d’électronique numérique.
La profusion de cartes, SBC et plateformes embarquées de toutes sortes, depuis quelques années déjà, a tendance à nous faire facilement oublier que même si Internet se souvient (théoriquement) de tout, rien n'est éternel.
Docker et les conteneurs logiciels font maintenant partie intégrante de la vie du sysadmin. Rappelons que les conteneurs permettent généralement d'isoler les processus, souvent des services réseau, afin de les détacher du système et de les faire s'exécuter dans des environnements distincts. Ainsi la ou les applications en question « vivent » dans leur petit monde, ignorant tout de la réalité du système faisant fonctionner le conteneur, mais aussi des autres applications dans leur propre environnement contenu. Cette mécanique peut être également très intéressante et avantageuse pour le développeur embarqué...
Dans des temps anciens, les logiciels propriétaires et les logiciels open source se menaient une guerre sévère. Ces temps-là sont désormais révolus. On ne peut pas dire que l’un ou l’autre bord ait gagné, mais en tout cas, il n’existe plus de tension aussi forte entre les partisans des deux camps. On peut se dire que c’est l’open source qui a gagné, qui a finalement été accepté. Mais c’est sans doute oublier un peu vite que l’on peut établir une distinction entre logiciel open source et logiciel libre, le premier profitant de la philosophie du second à des fins purement pécuniaires.
L'article précédent nous a mis le pied à l'étrier en nous permettant de faire connaissance avec le développement baremetal sur Raspberry Pi 3 équipée d'un SoC BCM2837. Nous avons été en mesure de créer et d’exécuter un simple code affichant un message sur la sortie série (GPIO 14 et 15) de la Pi. Il est temps, à présent, de passer à la vitesse supérieure et de faire connaissance avec des fonctionnalités plus intéressantes afin de pouvoir utiliser la sortie HDMI du SBC.
La carte Arduino UNO s'est vendue à 10 millions d'exemplaires.
C'est du moins ce qu'affirme un billet sur le blog officiel et, pour célébrer cela, une carte particulière appelée « UNO Mini Limited Edition » a été mise en vente sur le store pour quelques 40€. À ce prix, vous aurez une version miniaturisée (34,2 x 26,7 mm) de la plus populaire des Arduino, équipée d'un port USB-C et d'un brochage au pas quasi inutilisable, le tout avec (presque) les mêmes caractéristiques qu'une « poussive » UNO standard.
La mise au point de programmes fait partie intégrante du processus de développement. Lorsque le code ne se comporte pas comme attendu, la meilleure approche consiste à l'exécuter sous supervision, contrôler son déroulement et analyser précisément son comportement. S'il s'agit de développement sur microcontrôleur, ceci implique l'utilisation de matériels et de logiciels dédiés, une sonde, un outil la contrôlant et un débogueur. Ceci forme une suite parfois délicate à mettre en œuvre, mais il existe une solution plus compacte : la Black Magic Probe.
Le terme « baremetal », également orthographié « bare metal » ou « bare-metal » signifie « métal nu » et dans le contexte de développement sur plateforme embarquée désigne un développement reposant directement sur le matériel, sans la moindre couche d’abstraction. Ce type de programmation courant avec les microcontrôleurs est plus rare avec des plateformes utilisant des SoC puissants ou disposant de beaucoup de ressources. Pour autant, il est parfaitement possible d'utiliser l'ARM Cortex-A53 d'une Raspberry Pi de cette manière. Voyons cela...
La richesse d'un environnement et d'un framework dépend de nombreux éléments. Nous avons la ou les plateformes matérielles elles-mêmes, la qualité de l'environnement de développement, le nombre d'exemples permettant de prendre en main le microcontrôleur et enfin, la disponibilité de codes réutilisables permettant d'étoffer ses propres projets avec un minimum de travail : les bibliothèques. Sur ce point, la Pico ne dispose pas de solution entièrement clé en main (pour l'instant), mais la structure du SDK permet une approche relativement efficace.
Si vous venez du monde Arduino et faites vos premiers pas avec le SDK C/C++ de la Raspberry Pi Pico, il est fort probable que certaines choses vous paraissent anormalement complexes. Je ne parle pas seulement des ressources avancées tels les PIO, le DMA ou le contrôleur SSI, mais également des fonctionnalités dont vous pensiez déjà maîtriser le fonctionnement. C'est le cas, par exemple, des sorties PWM qui, avec la Pico, sont accessibles « au naturel » et sans fioritures. Voyons donc ensemble comment démêler tout cela et revenir à l'essentiel...