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

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

Par le(s) même(s) auteur(s)

Petit voyage dans le temps avec le microcontrôleur Motorola MC68705

Magazine
Marque
Hackable
Numéro
59
Mois de parution
mars 2025
Spécialité(s)
Résumé

Acheter une carte à microcontrôleur en ligne, la réceptionner, la brancher en USB, rapidement installer un environnement de développement plus ou moins étoffé et/ou basique, programmer un bout de code en deux temps, trois mouvements, compiler, charger le binaire et voir la jolie LED clignoter... Vous connaissez la routine qui semble, de toute évidence, sans surprise et parfaitement normale. Mais il n'en a pas toujours été ainsi et nos aïeux devaient vraiment mériter leur dopamine quotidienne. Bien plus que les chanceux bidouilleurs que nous sommes aujourd'hui, la preuve en pratique...

Créez n'importe quel périphérique USB avec ESP32-S2/S3

Magazine
Marque
Hackable
Numéro
59
Mois de parution
mars 2025
Spécialité(s)
Résumé

Dans le numéro 56 [1], puis dans le 58 [2], nous avons vu qu'il était non seulement relativement facile de créer un périphérique USB, quel qu'il soit, avec une carte Raspberry Pi Pico, mais également que ceci n'avait rien de bien nouveau, en faisant de même avec le microcontrôleur CY7C68013A/FX2LP. Passons aujourd'hui à ce que l'on pourrait considérer comme le « concurrent » direct du RP2040, à savoir l'ESP32.

PCI passthrough sous FreeBSD avec bhyve

Magazine
Marque
GNU/Linux Magazine
Numéro
274
Mois de parution
mars 2025
Spécialité(s)
Résumé

Dans un précédent article [1] nous avons exploré la possibilité, sous GNU/Linux, de créer des machines virtuelles capables d'accéder à du matériel PCI/PCIe dans le but, entre autres, de faciliter le développement de pilotes de périphériques OpenBSD. Ce type de fonctionnalités n'est pas spécifique à QEMU/KVM et il est temps de voir comment cela se passe de l'autre côté de l'univers Unix open source, avec FreeBSD.

NouveauLes derniers articles Premiums

Nouveau Les derniers articles Premium

Bun.js : l’alternative à Node.js pour un développement plus rapide

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

Dans l’univers du développement backend, Node.js domine depuis plus de dix ans. Mais un nouveau concurrent fait de plus en plus parler de lui, il s’agit de Bun.js. Ce runtime se distingue par ses performances améliorées, sa grande simplicité et une expérience développeur repensée. Peut-il rivaliser avec Node.js et changer les standards du développement JavaScript ?

PostgreSQL au centre de votre SI avec PostgREST

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

Dans un système d’information, il devient de plus en plus important d’avoir la possibilité d’échanger des données entre applications. Ce passage au stade de l’interopérabilité est généralement confié à des services web autorisant la mise en œuvre d’un couplage faible entre composants. C’est justement ce que permet de faire PostgREST pour les bases de données PostgreSQL.

La place de l’Intelligence Artificielle dans les entreprises

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

L’intelligence artificielle est en train de redéfinir le paysage professionnel. De l’automatisation des tâches répétitives à la cybersécurité, en passant par l’analyse des données, l’IA s’immisce dans tous les aspects de l’entreprise moderne. Toutefois, cette révolution technologique soulève des questions éthiques et sociétales, notamment sur l’avenir des emplois. Cet article se penche sur l’évolution de l’IA, ses applications variées, et les enjeux qu’elle engendre dans le monde du travail.

Petit guide d’outils open source pour le télétravail

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

Ah le Covid ! Si en cette période de nombreux cas resurgissent, ce n’est rien comparé aux vagues que nous avons connues en 2020 et 2021. Ce fléau a contraint une large partie de la population à faire ce que tout le monde connaît sous le nom de télétravail. Nous avons dû changer nos habitudes et avons dû apprendre à utiliser de nombreux outils collaboratifs, de visioconférence, etc., dont tout le monde n’était pas habitué. Dans cet article, nous passons en revue quelques outils open source utiles pour le travail à la maison. En effet, pour les adeptes du costume en haut et du pyjama en bas, la communauté open source s’est démenée pour proposer des alternatives aux outils propriétaires et payants.

Les listes de lecture

7 article(s) - ajoutée le 01/07/2020
La SDR permet désormais de toucher du doigt un domaine qui était jusqu'alors inaccessible : la réception et l'interprétation de signaux venus de l'espace. Découvrez ici différentes techniques utilisables, de la plus simple à la plus avancée...
8 article(s) - ajoutée le 01/07/2020
Au-delà de l'aspect nostalgique, le rétrocomputing est l'opportunité unique de renouer avec les concepts de base dans leur plus simple expression. Vous trouverez ici quelques-unes des technologies qui ont fait de l'informatique ce qu'elle est aujourd'hui.
9 article(s) - ajoutée le 01/07/2020
S'initier à la SDR est une activité financièrement très accessible, mais devant l'offre matérielle il est parfois difficile de faire ses premiers pas. Découvrez ici les options à votre disposition et les bases pour aborder cette thématique sereinement.
Voir les 34 listes de lecture

Abonnez-vous maintenant

et profitez de tous les contenus en illimité

Je découvre les offres

Déjà abonné ? Connectez-vous