2010-06-01 18 views
6

Je suis en train d'étudier les processeurs ARM d'un manuel ...
Simulator ARM sous Windows

Je pensais que ce sera plus utile si je pouvais appliquer ce que j'apprends sur un simulateur ARM ... écrire du code puis regarder les résultats et différentes étapes d'exécution serait plus amusant ...

J'ai cherché, mais tout ce que je pouvais trouver était soit un logiciel gratuit sur linux ou une démo sur les fenêtres

y at-il un simulateur qui me permettent de voir l'exécution étapes et différents changements pour le processeur ARM (toute version!) qui fonctionne sur Windows ??

Merci

Répondre

2

J'ai un émulateur de pouce qui devrait compiler n'importe où, windows, linux, mac, peu importe. thumbulator.blogspot.com. Ajoutez quelques printfs où vous voulez voir quelque chose et vous êtes en or. ARMs émulateur de l'armator, est disponible sous forme de source dans de nombreux endroits, dans les sources gdb par exemple. Qemu fonctionne très bien, mais il va être difficile de "voir votre code". le mieux serait d'avoir une source hdl (verilog par exemple) pour un noyau de bras et de créer des fichiers vcd ou d'autres formats de forme d'onde. Sauf si vous travaillez pour une entreprise de puces avec un bras incorporé, mais vous n'allez probablement pas en trouver un. Je peux me tromper mais je pense que tous les cœurs de bras ouverts sont rapidement retirés par ARM.

mame a un noyau de bras ou deux. avance garçon visuel a un noyau de bras. les émulateurs nds ont des coeurs de bras. Ou vous pouvez faire ce que j'ai fait avec le thumbulator et écrire le vôtre, je l'ai trouvé plus facile que d'essayer d'obtenir l'un des autres pour me montrer ce que je voulais voir. Bien sûr, j'étais fainéant et je n'ai fait qu'un émulateur de jeu d'instructions au lieu d'un émulateur de bras complet. Ce n'est pas difficile du tout juste du temps.

EDIT

OK Je suis resté corrigé. google les mots bras verilog. isc.tgz contient un modèle de comportement d'un bras qui compile et fonctionne très bien avec icarus verilog (gratuit).

Commentez tous les $ save_store(); lignes (comme C utiliser un //).

Ajoutez quelques lignes de code à testarm.v (après l'arm10 et avant le début initial par exemple).

initiale début $ dumpfile ("test.vcd"); $ dumpvars (0, arm10); fin

toujours # 50000 $ fini;

puis

iverilog -o bonjour testarm.v ARM10.v

VVP bonjour

et il fonctionnera 50000 unités de temps, terminer la sim et fermez le fichier vcd. Pour rendre le sim plus long ou plus court, changez toujours la ligne # 50000.

Obtenez une copie de gtkwave (gratuit) pour voir le fichier vcd. Utiliser gtkwave est un autre article, vous voudrez faire quelque chose comme cliquer sur le signe + à côté de test_arm, puis cliquer sur l'arm10 qui est là, sous les signaux cliquer sur dire addr_bus pour mettre la ligne en surbrillance puis cliquer sur la case append, cliquez sur le bus de données et cliquez sur le bouton ajouter, peut-être ajouter des registres, r1, r2, etc. Il y a une barre d'outils mais vous pouvez aussi utiliser le menu time-> zoom-> zoom plein qui est ALT-F sur mon installation. Ensuite, vous apprendre à faire un zoom avant et arrière sur les choses. En parlant d'expérience personnelle, vous ne verrez pas votre code fonctionner mieux que d'utiliser un simulateur HDL. En fait, une fois que vous vous êtes habitué à cela, vous pouvez avoir du mal à fonctionner sur du silicium où vous ne pouvez pratiquement rien voir.

Je n'ai pas fait plus qu'exécuter le programme de test inclus avec ce modèle comportemental. Je ne sais pas ce que vous pouvez ou ne peux pas faire avec. Un verilog $ readmemh est assez simple, il veut juste lire les lignes d'hex dans n'importe quelle mémoire spécifiée. Donc, vous pouvez facilement créer un outil qui prend votre code de bras compilé et crée le fichier ASCII que la simulation de Verilog veut.

+0

Notez qu'un modèle comportemental (HDL) n'est pas un modèle synthétisable signifiant que vous ne pouvez pas en faire une puce, rien ARM ne doit s'inquiéter d'être là dehors à l'air libre. –

4

QEMU

Peut-être vous avez fait allusion au programme d'installation binaire expérimentale pour Windows. Pour l'installation de la source sous Windows, voir this documentation.

+0

Y at-il un autre avec une meilleure interface utilisateur? – Betamoo

2

Qemu prend en charge Windows et est un émulateur de première classe pour ARM. Bien sûr, les états de pipeline exacts ne sont pas disponibles, mais la vue du programmeur sur l'émulation est disponible.

1

Il y a longtemps que cette question a été posée. Encore pensé qu'il serait bon d'écrire une réponse pour ceux qui sont familiers avec C. Ceci est une petite application C qui émule certaines/suivant les instructions d'assemblage ARM, où vous pouvez ajouter des résultats de débogage ou d'impression aux points pour vérifier les étapes d'exécution .

  1. Pipeline: Taille 4
  2. Réserves des emplacements de mémoire pour; Instructions d'interruption et instructions d'utilisation.
  3. Compte les cycles pour chaque instruction et tous les cycles.
  4. Instructions de traitement des données: définit les indicateurs de dépassement et de report. Instructions de branchement: Utilise la pile pour stocker les données de liaison si besoin.
  5. Instructions de transfert de données.
  6. Instructions d'interruption: Exécute l'instruction d'interruption dans le jeu d'instructions d'entrée ou accepte les instructions matérielles avant d'aller chercher une nouvelle instruction.
  7. Imprime les registres, la mémoire accessible à l'utilisateur, la mémoire de pile et les indicateurs d'état. Les variables "debugEnabled" et "instructionLogEnabled" peuvent être activées pour plus d'informations dans la sortie.

Le code source est disponible ici: http://www.omidmufeed.com/arm-assembler-emulator-with-c/

1

ARMSIM

ARMSim # est une application de bureau en cours d'exécution dans un environnement Windows. Il permet aux utilisateurs de simuler l'exécution des programmes de langage d'assemblage ARM sur un système basé sur le processeur ARM7TDMI.

De moi: c'est un simulateur et processeur spécifique, qui est en cours d'exécution ARM Linux sous QEMU, comme d'autres ont suggéré, est une meilleure option pour tester des solutions réelles. La prochaine étape est le métal ARM nu, qui en 2015 est réalisable à moindre coût avec Raspberry PI.