Développer sur ARM - Tout ce que vous devez savoir

Développer sur ARM

Il n'y a pas de doute sur la popularité de la gamme ARM de modèles de microprocesseurs. De petits microcontrôleurs à ses processeurs multi-cœurs 64 bits, ARM est responsable de la conception et de la propriété intellectuelle dans tout, des produits blancs aux batteries de serveurs. L'utilisation de processeurs basés ARM dans les smartphones et les tablettes signifie que les utilisateurs à la fois Android et iOS comptent sur ces puces chaque jour.

L'omniprésence de l'architecture ARM signifie qu'il ya une forte demande pour les développeurs ARM avertis. Ces développeurs sont nécessaires pour créer la prochaine génération de logiciel qui va fonctionner sur les processeurs ARM. Donc, si vous voulez écrire des logiciels qui seront exécutées sur les processeurs ARM, que devez-vous savoir?

ARM a veillé à ce que tous les outils nécessaires au développement pour les processeurs ARM sont disponibles, sous les deux licences commerciales et open-source.

La première chose que vous devez savoir, avant d'entrer dans les détails, est qu'il est pas difficile. ARM a veillé à ce que tous les outils nécessaires au développement pour les processeurs ARM sont disponibles, sous les deux licences commerciales et open-source. La prochaine question est, quel type d'appareil voulez-vous développer sur? La gamme de processeurs ARM commence avec ses Cortex-M microcontrôleurs. Ces petits processeurs de fonctionner à des vitesses d'horloge faible (autour de 16Mhz à 120Mhz autour) et avoir une petite quantité de RAM (entre 4K et 256K). À l'autre extrémité de l'échelle sont multi-core des processeurs 64 bits qui se déplacent à la vitesse de GHz et avoir accès à des gigaoctets de mémoire. Entre vous avez des ordinateurs monocarte, Chromebooks et smartphones.

bras-arc-évolution

La meilleure façon de décrire les différents environnements de développement est de regarder les un à la fois. Cependant il est important de garder une chose à l'esprit, toutes ces différentes catégories sont essentiellement utilisent la même architecture de processeur. Si bien fait, et avec certaines réserves, il est possible de prendre un binaire construit pour un processeur Cortex-M et de le relier à un programme conçu pour un processeur Cortex-A57 64-bit!

Cortex-M

La gamme ARM Cortex-M dessins sont de plus en plus important que les nouveaux dispositifs portables et Internet de-choses (IOT) les marchés commencent à exploser. Étant donné que ces types de dispositifs sont à faible coût et conçu pour être omniprésent, le nombre potentiel des puces qui seront expédiés au cours des prochaines années pourrait être dix fois plus élevé que le nombre de puces ARM qui expédient dans les smartphones et les tablettes. Ceci est un marché potentiellement lucratif qui ne demandent qu'à être explorées.

Les microcontrôleurs sont très en métal nu. Lorsque vous écrivez un programme pour celui que vous devez faire tout le levage lourd-vous, il n'y a pas nécessairement un système d'exploitation Linux de fantaisie comme pour fournir la gestion de la mémoire, systèmes de fichiers, des serrures, des files d'attente et ainsi de suite. Ce style de programmation est connu comme la programmation «incorporé». Cela ne signifie pas que les développeurs sont laissés à réinventer la roue à chaque fois qu'ils écrivent un programme, mais l'état d'esprit doit être différent. Développeurs de systèmes embarqués peuvent éventuellement utiliser ce qui est connu comme un système d'exploitation temps réel (RTOS). Un RTOS est petit, rapide, déterministe et fournit un précieux ensemble des fonctions du système d'exploitation de base. Et comme vous pouvez l'imaginer, il ya beaucoup de RTOS disponibles pour les processeurs ARM.

Freescale-Kinetis

Si vous voulez commencer avec la programmation embarquée avec la gamme ARM Cortex-M puis probablement le meilleur endroit pour commencer est au mbed.org. Le projet mbed est développé par ARM et il fournit toutes les bibliothèques de logiciels libres, conceptions matérielles et des outils en ligne nécessaires pour créer rapidement des prototypes basés sur microcontrôleurs ARM.



Cartes compatibles MBED à partir de seulement 12,95 $ chacun.

Cartes compatibles MBED à partir de seulement 12,95 $ chacun. Cela vous permet d'obtenir un conseil FRDM-KL25Z avec un processeur Cortex-M0 48MHz, 16K de RAM, et 128K de mémoire flash pour stocker le logiciel. Il comprend également un accéléromètre à 3 axes, et des DEL d'un capteur tactile capacitif. Le projet MBED offre un compilateur C en ligne et l'accès à RTOS ARM appelé RTX. Cela signifie que pour moins de 15 $ et avec un accès à un navigateur Web, vous pouvez commencer à programmer un conseil Cortex-M0.

Sur le site il ya beaucoup d'exemples avec la documentation complète. Il ya aussi beaucoup d'informations sur la façon de connecter les capteurs et les composants de communication pour les différents conseils.

Mbed.org est pas la seule solution à la programmation pour les processeurs Cortex-M. Un grand nombre de fabricants de cartes fournir leurs propres outils. Par exemple, TI a une gamme de cartes (appelé LaunchPad) et il fournit également ses propres outils pour le développement de ces conseils. D'autres exemples comprennent l'Arduino Due, qui utilise un processor- Cortex-M3 et de l'Arduino Zero, qui utilise un processeur Cortex-M0 +.

Il existe également des solutions commerciales de ARM (Keil et ARM Development Studio) et d'autres entreprises comme l'IRA, Atollic, Rowley Associates, et Keolabs. Ces outils prennent en charge plusieurs planches à partir de plusieurs fabricants. Il existe également des solutions open source spécifiquement le compilateur chaîne et des outils comme emIDE, CoIDE et EM :: Blocks outils GNU.

Tarte aux framboises

Un autre point d'entrée à faible coût dans le monde de ARM est le Raspberry Pi. À son coeur est le système de Broadcom BCM2835 sur une puce (SoC), qui comprend un ARM1176JZF-S cadencé à 700 MHz. Le moins cher Pi est à seulement 25 $ et est livré avec 256 Mo de RAM, mais n'a pas de port Ethernet. La version 35 $ a Ethernet et une 256 Mo de mémoire supplémentaire.

framboise-pi-aa

Le conseil exécute une version spécialement construit de Debian Linux appelé Raspbian. Puisque le dispositif a Linux, cela signifie que la plupart des outils communs de développement Linux sont immédiatement disponibles, y compris le compilateur GNU (pour C et C ++) et Java. Il ya aussi des langages de script comme Python, Perl et Lua disponibles, plus golang de Google a également été porté sur ARM et fonctionne très bien sur le Raspberry Pi.

L'Université de Cambridge a un tutoriel en ligne gratuit qui vous montre comment écrire un système d'exploitation très basique sur le Raspberry Pi en langage d'assemblage!

Presque tout programme que vous écrivez pour le Pi dans un niveau élevé compilé de la langue, ou en utilisant un langage interprété, travaillera inchangée sur un PC fonctionnant sous Linux, il ya aussi un certain degré de compatibilité avec Windows et Mac OS X, en particulier si vous écrivez le code d'une manière portable.

Pour profiter pleinement de l'Pi vous avez besoin d'un téléviseur ou un moniteur avec un port HDMI et vous avez besoin d'ajouter une souris et un clavier. Vous avez également besoin d'une carte SD pour le démarrage Raspbian et pour le stockage local. Ainsi, le coût réel est probablement autour de 50 $ à $ 60 (exclusion de la télévision), mais qui est encore un moyen très pas cher pour entrer dans le développement pour ARM.



Si vous voulez aller plus loin que simplement écrire des programmes dans un environnement Linux, puis l'Université de Cambridge a un tutoriel en ligne gratuit qui vous montre comment écrire un système d'exploitation très basique sur le Raspberry Pi en langage d'assemblage!

Il convient également de mentionner le noir BEAGLEBONE qui utilise un processeur Cortex-A8. Le Cortex-Une série d'ARM utilise l'architecture ARMv7, plutôt que de l'architecture ARMv6 utilisée par la puce Broadcom dans le Raspberry Pi. Les prix pour la BEAGLEBONE noir commencent à environ 55 $.

Si le Cortex-A8 ne fournit pas les performances dont vous avez besoin alors il ya une gamme de Ordinateurs monocarte de Hardkernel. Le ODROID-U3 utilise un processeur basé 1.7GHz quad-core Cortex-A9 de Samsung, et est livré avec 2 Go de RAM. Il en coûte seulement 65 $. Pour des performances haut de gamme, il ya la ODROID-XU3. Il utilise un processeur Samsung Exynos 5422. Le 5422 utilise la technologie big.LITTLE d'ARM et contient quatre cœurs Cortex-A15 et quatre cœurs Cortex-A7.

Android

Si vous avez déjà un smartphone ou une tablette Android, vous pouvez écrire des logiciels pour lui. La façon officielle pour écrire le logiciel Android est avec Java en utilisant la SDK Android. Si vous n'êtes pas familier avec la programmation avec Java ou alors ce pourrait ne pas être la meilleure façon de commencer à apprendre. Mais si vous êtes déterminé à apprendre puis Google fournit beaucoup de Programmation tutoriels Android.

Nexus 4 pour obtenir Android Lollipop

Cependant, l'utilisation de Java est pas la seule façon de développer pour Android. Une alternative possible est le SDK Corona. Il utilise le langage de programmation Lua et les compilateurs de Corona produire le .apk Android final sans que vous ayez besoin de connaître toute Java, ou les API spécifiques Android. D'autres solutions comprennent Xamarin (qui utilise C #), Marmalade (qui utilise C ++, Objective-C, Lua, ou HTML5), et de l'Unité. Si vous connaissez le HTML, CSS et javascript alors vous devriez jeter un oeil à PhoneGap. PhoneGap est un SDK gratuit et open source qui vous permet de créer des applications Android utilisant des API Web normalisés. PhoneGap est pas la seule solution HTML5, d'autres méritent d'être explorées incluent jQuery mobile et Sencha Touch. La liste donnée ci-dessus est pas complète, mais il ne vous donner un avant-goût de ce qui est possible.

Les serveurs 64 bits

À l'autre extrémité de l'échelle est la nouvelle génération de processeurs Cortex-A50 base 64 bits. Plusieurs différents fabricants de puces produisent des processeurs compatibles ARMv8, beaucoup pour le marché des serveurs. Probablement le plus connu ARM puce serveur maker est AMD. La société prévoit d'utiliser la haute efficacité énergétique de la conception ARM dans la salle de serveur pour réduire les coûts globaux d'énergie nécessaires au fonctionnement des fermes de serveurs massives. Depuis les puces ARM ne nécessitent pas de gros dissipateurs de chaleur puis fabricants de serveurs peuvent obtenir plusieurs serveurs dans une seule lame, et des lames multiples en une seule unité. Globalement cela signifie que plusieurs processeurs par pied carré.

La collection de compilateurs GNU prend déjà en charge l'architecture et les programmes ARMv8 écrite sur une plate-forme 32 bits ARM Linux devrait fonctionner sur des processeurs 64 bits sans modification.

Étant donné que ces systèmes seront probablement tourner Linux puis développement pour 64 bits ARM est tout comme le développement de tout autre système d'exploitation 64 bits, dont 64 bits de Linux sur Intel. La collection de compilateurs GNU prend déjà en charge l'architecture et les programmes ARMv8 écrite sur une plate-forme 32 bits ARM Linux devrait fonctionner sur les processeurs ARM 64 bits sans modification. En supposant que le code ne repose pas sur toute la ruse 32 bits (comme les opérations de bits qui supposent un mot de 32 bits), puis passer à 64 bits sera facile. Le noyau Linux est déjà pleinement 64 bits conscients, comme le sont les divers outils et services du système.

Conclusion

Quel que soit votre domaine d'intérêt à partir de dispositifs portables aux batteries de serveurs, d'ordinateurs de bord simples aux smartphones, il est amplement l'occasion d'écrire un logiciel qui fonctionne sur des dispositifs utilisant des processeurs ARM. Les outils sont disponibles, le matériel est abondante, ce qui vous en empêche?




» » » Développer sur ARM - Tout ce que vous devez savoir