2010-06-15 5 views
3

Je suis un débutant complet dans le monde ARM. Je dois pouvoir écrire du code C, le compiler, puis le télécharger dans un émulateur ARM et l'exécuter. J'ai besoin d'utiliser le compilateur GCC 4.1.2 pour la compilation du code C.Développement basé sur Windows pour les processeurs ARM

Quelqu'un peut-il me diriger dans les bonnes directions pour les problèmes suivants?

Quelle chaîne d'outils utiliser?

Quel émulateur utiliser?

Existe-t-il des didacticiels ou des guides sur la configuration de la chaîne d'outils?

+0

Pourquoi le tag "Windows"? – Wizard79

+0

@Lorenzo: Le titre dit "développement basé sur Windows", donc je suppose que c'est la raison de l'étiquette. – OregonGhost

+0

@OregonGhost: Hmm ... Je pense que j'ai besoin de vacances ... – Wizard79

Répondre

2

La construction d'un compilateur croisé gcc est assez simple. la bibliothèque gcc et la bibliothèque C et d'autres choses pas tellement, une bibliothèque intégrée et un peu plus difficile. Cela dépend de l'intégration que vous voulez obtenir. J'ai peu d'utilité pour gcclib ou une bibliothèque de c alors rouler vos propres travaux grands pour moi.

Après de nombreuses années à faire cela, peut-être que c'est une question d'âge, je vais maintenant chercher les outils de sourcerie de code. la version allégée fonctionne très bien. yagarto, devkitarm, winarm ou quelque chose comme ça (le site avec des exemples zillion) tout fonctionne bien. emdebian a aussi une bonne chaîne d'outils pré-construite. un certain nombre de ces endroits, sinon tous ont des informations sur la façon dont ils ont construit leurs chaînes d'outils à partir de sources gnu. Vous avez posé des questions à propos de gcc, mais gardez à l'esprit que llvm est un concurrent puissant, et en ce qui concerne la compilation croisée, puisqu'il compile toujours, c'est un compilateur croisé beaucoup plus facile à télécharger et à construire que gcc . la version récente produit maintenant du code (pour arm) qui rivalise avec gcc pour la performance. gcc n'est en aucun cas un leader en performance, d'autres compilateurs que j'ai utilisé tournent autour de lui, mais il s'améliore avec chaque version (les versions 3.x produisent parfois un meilleur code que les versions 4.x, mais vous avez besoin de 4 .x pour les nouveaux noyaux et le pouce2). même si vous y allez avec gcc, essayez de temps en temps la version stable de llvm. Qemu est un bon émulateur, en fonction de ce que vous faites, l'avance de gameboy virtuelle de gba emulator est bonne. Il y a aussi quelques émulateurs nds. GDB et d'autres endroits ont ce qui semble être leur propre armateur. J'ai trouvé difficile d'extraire et d'utiliser, donc j'ai écrit le mien, mais étant paresseux seulement mis en œuvre le jeu d'instructions de pouce, j'ai appelé le mien le thumbulator. facile à utiliser. Il est beaucoup plus facile que qemu et armator d'ajouter des périphériques et de regarder et déboguer votre code. ymmv.

Hmmm J'ai récemment posté une réponse similaire pour quelqu'un. Google: bras verilog et à umich vous trouverez un fichier isc.tgz dans lequel est un comportement arm10 (comme vous ne pouvez pas en faire une puce donc vous pouvez trouver verilog sur le net). Qui, pour quelqu'un qui veut apprendre un ensemble d'instructions, regarder votre code s'exécuter au niveau de la porte est à peu près aussi bon qu'il obtient. Soyez prudent, comme un médicament, vous pouvez devenir accro, puis avoir du mal quand vous revenez au silicium où vous avez une visibilité relativement nulle dans votre code pendant qu'il s'exécute. Quelque part dans stackoverflow j'ai posté les étapes impliquées pour obtenir ce modèle arm10 et un autre fichier ou deux pour le transformer en un émulateur de bras en utilisant icarus verilog. gtkwave est un bon outil gratuit pour examiner les fichiers wave (vcd).

Avant tout, vous aurez besoin du BRAS ARM. (Le manuel de référence architectural ARM). Il suffit de le google et de le trouver sur le site Web d'ARM. Il y a un pseudo code pour chaque instruction qui vous enseigne ce qu'ils font. Utilisez le thumbulator ou l'armulator ou d'autres si vous avez besoin de comprendre plus (mame a un noyau de bras dedans aussi). Je ne donne aucune garantie que le thumbulator est 100% débogué ou précis, j'ai pris quelques programmes communs et ai comparé leur sortie au silicium à la fois le bras et le non-bras pour déboguer le noyau.

2

Toolchain vous pouvez utiliser Yagarto http://www.yagarto.de/

Emulator vous pouvez utiliser Proteus ISIS http://www.labcenter.com/index.cfm (Il existe une version de démonstration)

et tutoriels, eh bien, google les =)

Bonne chance!

+0

Je recommande les deux parce que je les ai utilisés dans des projets de travail, et ils fonctionnent vraiment bien, vous pouvez utiliser beaucoup IDE avec Yagarto par exemple slickedit, netbeans, eclipse .. et Proteus ISIS est incroyable, si cela fonctionne dans ISIS vous pouvez essayer avec le vrai matériel, s'il ne fonctionne pas avec ISIS, vérifiez d'abord votre code et vos fils;) –

Questions connexes