Libérez votre CPU, utilisez l’accès direct mémoire : le DMA

Magazine
Marque
Hackable
Numéro
36
Mois de parution
janvier 2021
Domaines


Résumé

L’article « Pilotez de manière optimale vos afficheurs LED » de Hackable Magazine no34 illustre la manière dont on doit envisager la programmation embarquée : ne pas faire maladroitement en software ce que le hardware prend en charge. Depuis bientôt 10 ans, les microcontrôleurs 32 bits proposent en standard un ou plusieurs contrôleurs DMA qui transfèrent des données entre mémoire et périphériques sans mobiliser le CPU, n’attendons donc pas pour les mettre au travail.


L’accès direct à la mémoire est largement utilisé par les systèmes d’exploitation pour l’architecture PC, l’IBM PC 5150 original embarquant un circuit Intel 8237 à ces fins. Nous verrons, dans l’historique succin qui va suivre, que cette technologie est arrivée très rapidement après l’invention de l’ordinateur. Cependant, en ce qui concerne les microcontrôleurs, le DMA est arrivé tardivement, les vénérables PIC16 et les incontournables AVR 8 bits utilisés par la plateforme Arduino en sont dépourvus. Il faudra attendre l’arrivée des cœurs ARM 32 bits comme moteur des MCU (microcontroller unit), vers 2010, pour que le contrôleur DMA devienne un standard. Il équipe maintenant les gammes les plus performantes des MCU 8 bits, comme la gamme XMEGA du constructeur AVR. Dans la suite de cet article, nous allons poser le problème de la performance des entrées/sorties, puis présenter chronologiquement les solutions qui furent trouvées. Nous décrirons...

Cet article est réservé aux abonnés. Il vous reste 98% à découvrir.
à partir de 21,65€ HT/mois/lecteur pour un accès 5 lecteurs à toute la plateforme
J'en profite


Articles qui pourraient vous intéresser...

Installer OpenOCD spécial Pico pour votre Debian

Magazine
Marque
Hackable
Numéro
37
Mois de parution
avril 2021
Domaines
Résumé

N'importe quelle occurrence de la commande « sudo make install » me rappelle d'horribles souvenirs de mes débuts sous GNU/Linux, il y a de très nombreuses années (1995). Peupler ainsi manuellement son /usr/local de fichiers, programmes et bibliothèques est une recette parfaite pour une catastrophe et des conflits en tous genres. Mieux vaut suivre la voie dictée par la distribution et son système de gestion de paquets. Voyons cela en pratique avec l'OpenOCD modifié par la fondation Raspberry Pi et, en prime, découvrons une excellente alternative à l'utilisation d'UF2 ou Picotool.

De la preuve formelle en Verilog, librement

Magazine
Marque
Hackable
Numéro
37
Mois de parution
avril 2021
Domaines
Résumé

Dans cet article, on se propose de découvrir une autre méthode de validation d’un composant écrit en Verilog. L’idée est de décrire les propriétés du composant et de laisser l’ordinateur chercher les stimuli qui feront échouer des propriétés. Ça n’est plus le développeur qui écrit les tests, mais la machine. Cette méthode a récemment été rendue possible avec des logiciels libres grâce à la suite d’outils Yosys (synthèse Verilog), Yosys-SMTBMC (solveur) ainsi que SymbiYosys qui les chapeaute.

Mesurer l’éclairement avec Arduino

Magazine
Marque
Hackable
Numéro
37
Mois de parution
avril 2021
Domaines
Résumé

Papa de trois enfants en bas âge, j’ai souvent la tête dans les jouets. Mes enfants, comme beaucoup, s’amusent parfois à faire semblant d’acheter. Et si je leur fabriquais une sorte de « caisse/dînette » ! Ce serait tellement mieux s’ils pouvaient scanner des articles et que « ça marche », pour ensuite payer le total par carte !

Raspberry Pi Pico, Arduino killer ?

Magazine
Marque
Hackable
Numéro
37
Mois de parution
avril 2021
Domaines
Résumé

« Raspberry Pi ou Arduino ? », voici la question typique que se posent nombre de débutants avant de comprendre rapidement que comparer un ordinateur monocarte (SBC) et une carte microcontrôleur n'a aucun sens. Il s'agit de deux mondes distincts reposant sur des philosophies et des contingences totalement différentes. Mais en ce début d'année 2021, la réponse à cette mauvaise question est devenue délicate, car voici venir la carte Pico : une plateforme équipée d'un microcontrôleur RP2040 double-cœur ARM Cortex M0+... par Raspberry Pi ! En d'autres termes, la question est donc maintenant aussi « Raspberry Pi ou Raspberry Pi ? ».