Bon livre pour débutants sur ARM [fermé]


26

Je recherche un bon livre pour débutant pour les microcontrôleurs ARM. Il devrait couvrir l'architecture du processeur et la séquence de démarrage et idéalement également l'assembleur, le C et les périphériques.

J'ai un livre comme celui-ci pour les AVR et il semble y avoir plusieurs bons choix pour les puces Atmel. Le paysage ARM est plus complexe avec plusieurs fournisseurs et plusieurs classes de puces. Un regard sur Amazon n'a pas révélé de favori clair. J'apprécierais certaines recommandations.


Quel est votre livre pour les AVR? Je suis curieux. De plus, j'ai un pack de cours de mon université pour les ARM, mais je crains qu'il ne soit jamais publié ...
Kevin Vermeer

1
@ kevin-vermeer C'est un livre allemand: Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie écrit par un professeur à la retraite. Elle couvre tous les sujets que j'ai mentionnés dans ma question, y compris des trucs sympas comme la façon de compter les instructions d'assembleur pour déterminer combien de temps une boucle aura besoin par itération.
kwo

Je suppose que j'ai besoin d'apprendre l'allemand ...
Kevin Vermeer

Cela ressemble à un livre intéressant, je ne connais pas bien l'allemand pour pouvoir le lire et le comprendre.
Dean

@kwo Je suppose qu'il n'y a aucun espoir d'obtenir une version traduite, n'est-ce pas?
NickHalden

Réponses:



13

Recherchez le manuel ARM ARM, ARM Architectural Reference. Couvre le processus de démarrage, l'architecture, l'assemblage (ARM, thumb et thumb2), tout. L'ARM ARM est générique, pour le noyau spécifique qui vous intéresse, il y aura également un TRM, Technical Reference Manual. Tous ces documents sont disponibles gratuitement sur le site Web d'ARM. Le TRM entrera dans les détails spécifiques de ce cœur, en particulier si vous souhaitez utiliser l'un des nouveaux microcontrôleurs basés sur Cortex-M3, la séquence de démarrage ou disons que la table des exceptions est différente de l'ARM traditionnelle et vous avez besoin du TRM pour le Cortex-M3 pour trouver les informations.

si vous vous retrouvez avec un bras avec un cache ou mmu, vous devrez peut-être également obtenir le TRM pour cela sur le site Web d'ARM. Vous devez connaître le noyau spécifique intégré à la puce du fournisseur particulier, par exemple le PL310 r2p0 peut / peut être différent du r3p0. Le fournisseur doit disposer de ces informations et peut fournir des liens vers ou peut-être directement les documents d'armement, normalement il n'intègre pas les documents d'armement dans sa propre documentation. Je pense que ARM le préfère de cette façon.

En ce qui concerne C, il s'agit juste de C, rien de spécial, ARM est pris en charge par les compilateurs traditionnels, gcc, llvm, Keil (qui appartient maintenant à ARM), IAR, green hills, etc. Microsoft en a même / avait un (éviterait cependant). Rien de spécial pour l'ARM, mais vous devez connaître les nuances du compilateur spécifique et sa liaison. Code Sourcery est la voie à suivre ces jours-ci pour un compilateur ARM basé sur gcc prêt à l'emploi, la version LITE est gratuite à télécharger et à utiliser, et il existe des versions payantes si vous souhaitez une assistance (plus d'assistance gcc bras gratuite sur google.com que vous avez le temps de lire). Avant de coder sourcery, emdebian était un endroit où aller, pour certaines choses, yagarto et devkitarm et winarm avaient tous / ont des solutions prêtes à l'emploi (pour embarqué et pas nécessairement linux, Code Sourcery ou emdebian si vous souhaitez effectuer une compilation croisée pour linux).

J'ai quelques blogs qui ne sont pas vraiment des blogs, mais des endroits pour mettre des exemples de programmes et des informations sur la façon de mettre en place quelques microcontrôleurs ARM différents. Some asm some C, les anciens blogs que je montre comment construire votre propre compilateur croisé basé sur gcc. Je peux aussi avoir des informations sur llvm (le thumbulator a quelques exemples, non documentés cependant), prêt à l'emploi, llvm peut être utilisé comme compilateur croisé pour un certain nombre de plates-formes, vous n'avez pas à le construire sur une cible comme gcc. Et la génération de code de llvm a rattrapé gcc 4.x (gcc 4.x n'est pas nécessairement meilleur que gcc 3.x et ni gcc ni llvm ne sont aussi bons que d'autres prix chers pour ceux comme les propres compilateurs ARM).

http://stm32stuff.blogspot.com/

De là, vous pouvez cliquer sur mon profil et trouver des informations similaires pour lpc, lmi (micro lumineux, les pièces stellaris, maintenant détenues par ti) sam7. Je ne suis pas autant un fan de la famille lpc, mbed2 va bien à part les douloureuses led bleues. en ce moment il y a une carte basée sur stm32 à 12 $, quelque chose de découverte, prêt à jouer avec dès la sortie de la boîte. coridium a une planche qui correspond à l'empreinte Arduino comme l'érable, peut en obtenir un ou les deux chez sparkfun (beaucoup de goodies chez sparkfun). si vous cherchez quelque chose de plus puissant, le beagleboard était douloureux pour le manque d'interfaces, la version chinoise pour le même prix est / était meilleure (est apparue dans une semaine ou deux mais aucune information de suivi d'aucune sorte), a Ethernet et un port série non vissé. J'aime le hawkboard mais je pense qu'ils n'ont pas suivi le guide de conception et ils peuvent avoir des problèmes avec l'omap. J'ai aimé l'openrd des gens de l'informatique plug, mais j'ai détesté la version plug. L'openrd a un connecteur d'alimentation et de données sata sur la carte, branchez simplement un disque dur, d'autres cartes de cette classe vont vous forcer à quelque chose basé sur le flash (lire: très lent). de toute façon, les noyaux marvell tournent autour des ti omaps.

ou essayez mon simulateur de jeu d'instructions de pouce thumbulator (github) gratuitement, mais limité au pouce, pas de bras (vous pouvez cependant en prendre votre code sur les cartes stm32, comme celui de 12 $). l'armateur qui est dans gdb et ailleurs est probablement plus pénible à utiliser, mais prend en charge bras et pouce, et qemu est facile à utiliser si vous n'avez aucun intérêt à voir ce que fait votre code autre que la sortie du port série. qemu prend en charge le bras, le pouce et le pouce2, je pense qu'une planche stellaris ou deux y est modélisée.

Si vous connaissez déjà l'assembleur AVR, qui n'est pas si grand qu'un jeu d'instructions (meilleur que certains, pire que d'autres), vous ne devriez pas avoir de problème avec ARM ou le pouce, un peu plus propre, un peu plus simple. De même, si vous avez fait du C intégré (en dehors d'un bac à sable) avec l'AVR, alors ARM sera le même ou plus facile. Vous pouvez aller avec le mbed ou l'érable où ils ont des bacs à sable qui devraient faciliter le démarrage, puis si vous voulez vous aventurer par vous-même, vous pouvez le faire sans trop de problèmes. le mbed vous copiez simplement le .bin sur le lecteur flash virtuel, l'érable vous utilisez leur chargeur ou dfu-util ou quelque chose comme ça, je ne me souviens pas.


Réponse fantastique.
NickHalden

3

Les bons livres sur ARM sont:

"ARM SOC Architecure" par Steve Furber

"Guide des développeurs de systèmes ARM" par Andrew Sloss, Dominic Symes et Chris Wright

"Manuel de référence de l'architecture ARM" par ARM

Le dernier est disponible gratuitement sur le site d'ARM .

Sloss, Symes et Wright est excellent si vous voulez vous éloigner des arbres pour voir la forêt, surtout si vous avez des systèmes embarqués à faire.

Furber est l'un des architectes ARM d'origine et fait un excellent travail en vous expliquant la logique de la conception d'ARM et le fonctionnement général des cœurs de processeur ARM.

Bien sûr, tout ce qui précède n'est qu'une recommandation basée sur mon opinion personnelle / subjective et ne doit pas être considéré comme une prise pour un produit ou un auteur particulier.


Formater la liste des livres comme une liste serait utile, y compris les liens pour ces livres est utile.
Trygve Laugstøl


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.