2012-11-09 4 views
3

Je cherche des informations sur la programmation des dispositifs ARM, d'une manière particulière non particulière [1]. Supposons que j'écris le code pour un processeur ARM qui est utilisé comme une machine similaire à un Apple II/Atari "* *" XL/Commodore 64/DOS-PC, ou même quelque chose qui fonctionne un système d'exploitation multitâche comme VMS ou SUNOs. Supposons en outre que tout matériel spécifique à un périphérique/système d'exploitation ait déjà été extrait dans des sous-programmes. Des exemples de ce type de programmation pourraient être: un jeu de texte/malédiction comme un voyou ou une moria; un traitement de texte basé sur les malédictions (ou plutôt quelque chose basé sur une bibliothèque de malédictions); ou un programme modem/terminal.Environnement de développement ARM pour les débutants

Je cherche deux choses. Matériel pour aider à apprendre la programmation ARM, bien que le Guide du développeur système ARM puisse être suffisant, d'autres ressources seraient utiles Je cherche en particulier quelque chose qui explique les différences logicielles (et relatives du matériel par exemple) des différentes générations de processeurs.

L'autre chose que je cherche est un environnement de développement qui inculde, émule, un assembleur de macro décent, et un débogueur. Avec toute autre chose qui m'aidera à voir ce qui se passe dans mes programmes.

[1] OK. Désolé, je ne pouvais pas résister à ce jeu de mots particulier.

+0

http://beagleboard.org/ est une plate-forme matérielle de bon bras avec beaucoup d'options pour le développement de logiciels. J'ai aussi trouvé que le livre "ARM System-on-chip Architecture" de Steve Furber était assez bon quand il est sorti, mais il est un peu vieux maintenant ... –

Répondre

2

Vous avez le choix d'utiliser les séries ARM Cortex M ou A. Si vous souhaitez développer des applications haut de gamme comme celles qui fonctionnent sur les smartphones/tablettes, vous devez choisir ARM A. Si vous voulez mettre l'emphase sur le matériel/niveau bas comme les contrôleurs, alors vous devriez opter pour ARM Cortex-M. Si vous êtes dans des applications en temps réel (dont je doute est votre cas, ils utilisent la série R).

La plupart de ces nouvelles générations ARM sont basées sur l'architecture ARMv7 et ISA, de sorte que la lecture des manuels peut vous aider à démarrer. Plus récemment, une nouvelle architecture ARMv8 et ISA ont été annoncées, elle prend en charge le traitement 64 bits.

Téléchargez les manuels de référence et les manuels techniques du site ARM pour en savoir plus sur le matériel/les périphériques.

Je voudrais aller avec la suggestion de auslen d'acheter une carte, vous pouvez aller avec le pad de lancement de Stellaris de TI qui dispose d'un processeur ARM-M4F (prend en charge à virgule flottante et SIMD), il vend pour 12,99 $ http://www.ti.com/ww/en/launchpad/stellaris_head.html?DCMP=stellaris-launchpad&HQS=stellaris-launchpad-b

ou vous pouvez utiliser le tableau de découverte de ST (basé sur le même processeur que ci-dessus), mais il dispose d'un lecteur audio, d'un accéléromètre et d'une clé USB. il se vend 14,99 $ http://www.st.com/internet/evalboard/product/252419.jsp ou la carte STM F3 (10,99 $) http://www.st.com/internet/evalboard/product/254044.jsp

Dans tous les cas, vous devez vérifier les exemples qui viennent avec le conseil d'administration, sans que l'on pouvait aller nulle part facilement. Le tableau est livré avec ses propres pilotes, tout est résumé d'une manière, de sorte que vous pouvez commencer à partir de là!

Comme pour OS, si votre intérêt est un RTOS, ARM fournit les processeurs de la série RTOS CMSIS pour ses M http://www.arm.com/products/processors/cortex-m/cortex-microcontroller-software-interface-standard.php

Ce livre offre une introduction aux générations de processeurs ARM. Puis se concentre sur le cortex M3. Il couvre son ISA avec beaucoup de code d'assemblage. Il aborde également les périphériques intégrés et la manière de démarrer avec C. http://www.amazon.ca/Definitive-Guide-ARM-Cortex-M3/dp/185617963X/ref=sr_1_1?ie=UTF8&qid=1352506616&sr=8-1

bonne chance

2

infocenter.arm.com et regardez les différents ARM ARM (manuels de référence architecturale) et TRM (manuels techniques de référence) pour les différentes architectures et noyaux. ces manuels sont meilleurs que la plupart des autres sociétés de documentation. à l'exception du nouveau matériel 64 bits, la différence d'une architecture à l'autre est quelque peu subtile dans la mesure où l'ensemble d'instructions va. les différences majeures ont à voir avec les périphériques, le mmu est un changement lent, le gestionnaire d'interruptions a fait de grands pas et le processeur a été remplacé au moins une fois sinon deux fois en gros (si vous avez même un processeur dont l'exception n'est pas la règle qu'elle consomme un immense bien immobilier pour un si petit retour).

Je suis confus avec votre question. Je pense qu'il est important de tracer la ligne entre l'apprentissage de l'ensemble architecture/instruction et l'apprentissage des appels du système d'exploitation, ce sont deux choses distinctes. Les choses du système d'exploitation ont rarement besoin de regarder au-delà du code source (C/C++), et l'asm limité est pour les bibliothèques C accordées à la main ou le code boostrap, et les wrappers d'interruption. De même l'architecture, les registres, les instructions, etc. par rapport aux périphériques (les cœurs de bras ont généralement très peu de périphériques, le gros est dans les trucs spécifiques au vendeur) que je sépare comme une courbe d'apprentissage séparée, a peu à voir avec asm et l'ensemble d'instructions n'est donc pas différent d'apprendre un périphérique sur une autre plate-forme, juste quelques adresses que vous lisez et écrivez.

Si vous cherchez un système sans système d'exploitation, la découverte de stm32f0 coûte 10 $, je le recommande fortement. On dirait que ti a un tableau de bord stellaris pour juste un peu plus (j'attends que le mien arrive donc je ne peux pas parler beaucoup d'eux, et l'expédition est gratuite, donc le coût est fondamentalement le même que les cartes stm32) et j'appellerais à peine un microcontrôleur avec tout ce que le cortex-m4 a.

Passant à linux capable ou conçu pour les systèmes Linux, il y a le raspberry pi, beaglebone et open-rd et plus (pandaboard). Encore une fois, si vous écrivez juste un autre programme C/C++ linux, il n'y a pas beaucoup d'excitation là (liée à une plate-forme spécifique, le divertissement est le même pour toutes les plateformes) et très peu de connaissance du bras. Il est très facile d'utiliser l'une de ces plates-formes pour la programmation de métal nu, ce qui vous donne des performances comparables à celles des microcontrôleurs ARM.

J'ai un simulateur de pouce qui ne vous intéresse probablement pas. Gdb a l'armateur qui était la pierre angulaire de l'entreprise dans la journée. skyeye ou quelque chose comme ça a un simulateur de jeu d'instruction de bras comme le fait qemu, aucun d'eux ne vous donnera une grande visibilité autre que ce que gdb peut fournir. opencores a le projet amber un clone armv2, que vous pouvez voir la relation étroite à l'armv4 et plus récent que vous ne trouverez pas rtl pour sans une boîte pleine d'argent. Avec mon expérience de bras et de puce (Non, je ne travaille pas pour le bras) Je trouve le projet ambre intéressant, mais beaucoup de gens ne savent pas quoi en faire et ne sont vraiment pas intéressés par ce niveau de visibilité. (C'est une instruction compatible, un bon design, mais ne pensez pas que vous regardez une conception de bras, pas de secrets là-bas). Les microcontrôleurs étant basés sur le cortex, vous trouverez peut-être que les anciens microcontrôleurs constituent un meilleur tremplin pour les noyaux des bras supérieurs. ARM7tdmi base de choses comme les sam7s et autres de nxp, st, atmel, etc, que vous pouvez toujours trouver à sparkfun et microcontrôleur pros et d'autres endroits pour arduino comme les prix.

Questions connexes