Archives par mot-clé : gcc

Quelle est la meilleure toolchain pour ARM embarqué?

Sur le web, on trouve plusieurs toolchains ARM, qui peuvent être toutes utilisées pour programmer des cartes embarquées. Voici les principales:

  • YAGARTO (yet another arm toolchain)
  • buildroot
  • CodeSourcery (Sourcery CodeBench)
  • linaro (toolchain “officielle”)
  • GNUARM
  • WinARM

Toutes ces toolchains sont subtilement différentes:

  • CodeSourcery ne supporte pas les FPU (floating point unit) des Cortex-M4, et n’offre aucun support pour les utilisateurs de la version gratuite depuis le rachat de cette société par Mentor Graphics
  • WinARM et GNUARM sont préhistoriques, peu maintenues, etc
  • buildroot est prévue pour être utilisée dans l’environnement du même nom, et n’est pas toujours facile à obtenir séparément
  • C’est très pénible de compiler soi même une toolchain GCC complète

linaro est produite principalement pour les plate formes Android et Linux, et elle supporte les Cortex M4 (STM32, Stellaris etc). Son grand avantage est d’être supportée directement par la société ARM elle même, mais elle met 3 ou 4 fois plus de temps que les autres à compiler un programme. Pour un petit programme, cela peut sembler peu important, mais dès qu’on touche un projet plus volumineux, cela peut devenir pénible. De plus, elle inclut par défaut le support des exceptions C++, ce qui est totalement inutile sur les plate formes embarquées à mémoire réduite.

Pour regrouper le meilleur de ces mondes, Freddie Chopin, un expert en logiciel embarqué ARM très actif dans le monde open source /logiciel libre , a décidé de compiler et de distribuer sa propre toolchain, basée sur les paquets de la toolchain “officielle” linaro, mais en utilisant les options de constructions de CodeSourcery. Le résultat est doté de ces caractéristiques:

  • Plus rapide que Linaro,
  • Elle est compilée avec le compilateur le plus récent pour windows, mingw-w64 (et avec gcc sous linux)
  • Les paquets de base (le compilateur, newlib, gdb et binutils) proviennent directement des projets officiels, et utilisent les révisions les plus récentes,
  • Les autres composants (librairies requises pour la compilation de la toolchain, comme gmp, mpfr, mpc) sont les plus récentes versions stables (sauf si la documentation recommandait une version spécifique),
  • Les exceptions C++ ne sont pas activées (bien qu’une version avec les exceptions soit en préparation),
  • Toutes les librairies cibles sont fournies non strippées, donc avec toutes leurs infos de débogage (ce qui est pratique pour approfondir le débogage de ses propres programmes),
  • la librairie newlib est compilée avec l’option reent-small pour économiser de l’espace de pile.

Ces options sont très intéressantes pour l’efficacité des programmes ARM embarqués.

Cette toolchain est appellée “bleeding edge toolchain”, et elle est téléchargeable pour windows 32 et 64 bits, et pour linux 64 bits, sur le site sourceforge.

Je recommande son utilisation pour tous les projets ARM embarqués.

Des parties de cet article sont basées sur la traduction de cet article original (en anglais).

Revue de presse – 12 Novembre 2012

Raspberry Pi

Un rack pour 4 raspberry pi en lego peut servir à plein de choses, notamment à gérer un stockage distribué chez soi. Si un disque casse, il reste les autres! Des plans de construction de la structure en Lego sont fournis, ça me rappelle ma petite enfance!

Source: http://www.giaceccosdigitalcontraptionsimaginarium.com/post/34442735088/modular-rack-for-four-raspberry-pis-in-pcsl-adafruit (mention spéciale au nom de domaine!)

Via: http://www.adafruit.com/blog/2012/11/09/modular-rack-for-four-raspberry-pis-in-pcsladafruit-case-usb-hdd-switch-piday-raspberrypi-raspberry_pi/

Stellaris Launchpad

Après avoir réussi à faire fonctionner le débugage sur openocd, un tutorial a été écrit sur la programmation de la bête sous linux!

Source: http://recursive-labs.com/blog/2012/10/28/stellaris-launchpad-gnu-linux-getting-started/

Via: http://forum.stellarisiti.com/blog/6/entry-29-stellaris-launchpad-development-using-linuxgcclm4tools/

A noter également que Texas Instruments m’a contacté pour me prévenir de l’envoi de mes cartes. Les choses sérieuses vont commencer!

Arduino

Un nouvel arduino est né, c’est un mini micro! Il tient sur un support DIL large, comme un basic stamp, ce qui est très pratique pour l’intégrer dans vos bricolages! C’est l’arduino nano!

Source: http://arduino.cc/en/Main/ArduinoBoardNano

Acheter sur amazon

Radio

L’Electrolab s’intéresse au sdr-widget, une carte son usb particulière qui est plutôt une platine d’acquisition de signaux issus d’une carte SDR (radio logicielle). Cette carte a une très bonne dynamique de 153 dB, ce qui signifie qu’elle peut digitaliser simultanément des signaux très différents (très forts et très faibles) C’est plutôt rare pour ce genre d’appareil, et très important pour faire de la radio… Mais aussi pour les audiophiles!

Source: http://wiki.electrolab.fr/Projets:Lab:2011:SDR_Widget

Etonnant

Les lignes à retard sont des appareils plutôt anciens, qui servaient dans les appareils vidéo à faire fonctionner le décodage de la couleur, surtout pour les systèmes PAL et SECAM. Le but de ces circuits est donc de retarder un signal, généralement de quelques microsecondes. Et que fait le signal pendant ce temps? Eh bien il est “stocké” sous forme d’onde dans le matériau, que ce soit dans un long fil émaillé ou dans une lame de verre. Dans les applications vidéos, cela sert à stocker une ligne d’image pour l’ajouter à la suivante, c’est nécessaire pour décoder correctement les couleurs. Mais en informatique, il suffit de boucler la sortie sur l’entrée pour que le signal se propage en boucle, et on obtient… une mémoire!

J’avais déja vu ces appareils utilisés dans des ordinateurs grâce au blog de  Bunnie Huang. Pour avoir une plus grande capacité mémoire, on utilise alors un fil en nickel de grande longueur bouclé et légèrement maintenu pour ne pas affaiblir l’onde qui s’y propage.

Mais dans cet article, le hack est plus prononcé, puisqu’il s ‘agit d’une récupération provenant d’une vieille caméra vidéo!

Source: http://www.youtube.com/watch?v=-qerYLM-eEg

Via: http://hackaday.com/2012/11/09/storing-32-bytes-of-data-in-a-piece-of-glass/