GNU/Linux Magazine s'adresse aux professionnels et aux particuliers désireux de mieux maîtriser les techniques et problématiques liées à la programmation et à l’utilisation de solutions open source. Tous les deux mois avec ses articles techniques, la publication couvre les thématiques suivantes : programmation système, algo, bas niveau, sécurité du code, développement web...
Aucun nouveau langage n'a les caractéristiques pour remplacer le vénérable C, voire le C++ : performance complexe à obtenir, machine virtuelle encombrante, complexité d'usage, absence d'accès bas niveau au matériel. Pour y arriver, les défis à relever sont nombreux : rapidité, productivité, capacité à trouver ses erreurs, facilité de prise en main et surtout, convaincre de nouveaux utilisateurs.
Au sein de la gamme des cœurs de processeurs proposés par ARM, le Cortex-M3, opérant sur des registres de 32 bits, fournit un compromis entre une puissance de calcul appréciable et une consommation réduite qui, sans atteindre les performances du MSP430 (16 bits), propose néanmoins des modes de veille en vue de réduire la consommation moyenne d’une application. Bien que les nombreux périphériques disponibles ainsi que l’énorme quantité de mémoire associée à ce processeur puissent justifier l’utilisation de bibliothèques dont une implémentation libre est disponible sous le nom de libopencm3, nous verrons qu’il est possible d’appréhender un certain nombre de ces périphériques pour en faire un usage optimal en accédant directement aux registres qui en contrôlent l’accès. Le cœur M3 est décliné par de nombreux fondeurs : nous nous focaliserons ici sur l’implémentation de ST Microelectronics sous le nom de STM32F1 (dans la suite, le microcontrôleur sera nommé simplement STM32 car la plupart des applications sont portables sur les autres modèles).