Assembleur sur ARM Cortex-M : technique, mais pas si difficile...

Magazine
Marque
Hackable
Numéro
39
Mois de parution
octobre 2021
Spécialité(s)


Résumé

Choisir un langage pour un projet est une question d'équilibre entre confort et rapidité de développement d'une part et performance de l'autre. C'est précisément là la raison pour laquelle des langages comme C, C++ et depuis peu, Rust sont omniprésents, dès lors qu'on parle d'embarqué et de microcontrôleur. Aux deux extrémités du spectre des langages, nous avons JS ou Python d'un côté et l'incontournable assembleur de l'autre. Celui-là même dont nous allons nous occuper ici...


Beaucoup considèrent l'assembleur comme quelque chose d'un autre âge, celui de la programmation des Atmel AVR avec trop peu de SRAM pour supporter un développement C ou encore des MicroChip PIC comme le 16F84. Il n'y a rien de plus faux, car la judicieuse utilisation d'un langage ne se définit pas en termes temporels, mais en fonction des avantages, des besoins et des contraintes. Même si aujourd'hui, il serait impensable d'utiliser ce langage pour développer tout un projet sur une plateforme disposant de centaines de kilooctets de RAM et de flash, l'assembleur est toujours présent et apparaît comme une évidence, pour peu que l'on se rapproche du matériel. Qu'il s'agisse de bootloader, de vecteur d'initialisation, de CRT ou de routines nécessitant des performances accrues, le langage d'assemblage n'est pas un choix, c'est une nécessité.

Comme nous allons le voir, les langages de plus haut niveau, ainsi que les bibliothèques qui les accompagnent facilitent...

Cet article est réservé aux abonnés. Il vous reste 98% à découvrir.
S'abonner à Connect
  • Accédez à tous les contenus de Connect en illimité
  • Découvrez des listes de lecture et des contenus Premium
  • Consultez les nouveaux articles en avant-première
Je m'abonne


Article rédigé par

Abonnez-vous maintenant

et profitez de tous les contenus en illimité

Je découvre les offres

Déjà abonné ? Connectez-vous