Guide épique de la programmation Bare-Metal STM32

Dans le domaine des systèmes informatiques, la programmation bare-metal fait le plus souvent référence à la programmation du processeur sans système d’exploitation intermédiaire. Cela s’applique généralement au BIOS de programmation, aux pilotes matériels, aux pilotes de communication, aux éléments du système d’exploitation, etc. Même dans le monde de la programmation embarquée, où les choses sont généralement assez bas niveau (proche du métal), nous nous sommes habitués à une bonne quantité d’abstraction matérielle. Par exemple, nous démarrons souvent des projets reposant déjà sur diverses bibliothèques, chargeurs de démarrage et outils de développement intergradés.
Lorsque nous renonçons à ces abstractions et programmons directement sur le microprocesseur ou le microcontrôleur, nous travaillons sur du métal nu. Sergey définit avec justesse cela comme la programmation du microcontrôleur “en utilisant juste un compilateur et une fiche technique, rien d’autre”. Son guide commence à la base même en examinant la carte mémoire et les registres du processeur, y compris les emplacements des broches d’E/S mappées en mémoire et d’autres périphériques.
Le guide nous guide dans la rédaction d’un programme de micrologiciel minimal, du vecteur de démarrage au clignotement d’une LED connectée à une broche d’E/S. La démonstration se poursuit avec la configuration et l’utilisation des outils nécessaires tels que le compilateur, l’éditeur de liens et le clignotant. Nous passons à des sujets de plus en plus avancés tels que les minuteries, les interruptions, la sortie UART, les débogueurs et même la configuration d’un serveur Web intégré pour exposer un tableau de bord complet de l’appareil.
Bien qu’initialement plus chronophage, le fait de travailler à proximité du métal offre une bonne compréhension et un contrôle supplémentaires des opérations matérielles. Pour en savoir plus sur le sujet, vous aimerez peut-être notre série STM32 Bootcamp sur la programmation STM32 bare-metal.
Source link