2010-06-01 17 views
6

sto studiando processori ARM da un libro di testo ...
ARM Simulator su Windows

ho pensato che sarà più utile se potessi applicare quello che ho imparato su un simulatore ARM ... la scrittura di codice poi guardando i risultati e diverse fasi di esecuzione sarebbe più divertente ...

ho cercato per questo, ma tutto quello che ho trovato è stato sia un freeware su Linux o una demo sulle finestre

c'è un simulatore che mi permette di vedere l'esecuzione passaggi e modifiche diverse per processore ARM (qualsiasi versione!) che gira su Windows ??

Grazie

risposta

2

Ho un emulatore di pollice che dovrebbe compilare ovunque, windows, linux, mac, qualunque sia. thumbulator.blogspot.com. Aggiungi un po 'di stampe ovunque vuoi vedere qualcosa e sei d'oro. Emulatore ARM l'armulator, è disponibile in forma sorgente in molti posti, ad esempio nelle fonti gdb. qemu funziona alla grande ma sarà difficile "vedere il tuo codice". il migliore sarebbe avere un sorgente hdl (verilog per esempio) per un core arm e creare file vcd o altri formati di forme d'onda. A meno che non lavori per una società di chip con un braccio incorporato anche se probabilmente non ne troverai uno. Potrei sbagliarmi, ma penso che tutti i nuclei del braccio aperto là fuori siano rapidamente abbattuti da ARM.

mame ha un'armatura o due. l'avanzamento visivo del ragazzo ha un'anima del braccio. gli emulatori nds hanno core arm.

Oppure puoi fare quello che ho fatto con la thumbboard e scrivere la tua, ho trovato più facile che cercare di convincere uno degli altri a mostrarmi cosa volevo vedere. Ovviamente ero pigro e facevo solo un emulatore di set di istruzioni al pollice invece di un emulatore di braccio completo. Non è affatto difficile solo in termini di tempo.

MODIFICA

Ok, mi correggo. google le parole arm verilog. isc.tgz contiene un modello di modello comportamentale di un braccio che compila e gira bene con icarus verilog (gratuito).

Commenta tutti i $ save_store(); linee (proprio come C usa un //).

Aggiungere alcune righe di codice a testarm.v (dopo l'arm10 e prima dell'inizio iniziale, ad esempio).

iniziale inizio $ dumpfile ("test.vcd"); $ dumpvars (0, arm10); fine

sempre # 50000 $ finitura;

poi

iverilog -o ciao testarm.v ARM10.v

VVP ciao

e verrà eseguito 50000 unità di tempo, terminare la sim e chiudere il file VCD. Per rendere la simulazione più lunga o più breve cambia la linea sempre # 50000.

Ottenere una copia di gtkwave (gratuito) per visualizzare il file vcd. Usando gtkwave è tutto un altro post, vorrai fare qualcosa come cliccare sul segno + accanto a test_arm, quindi fare clic sull'arm10 che si trova lì, sotto i segnali fai clic su say addr_bus per evidenziare la linea quindi fai clic sulla casella append, clicca su data_bus e clicca sul pulsante append, magari aggiungi alcuni registri, r1, r2, ecc. C'è una barra degli strumenti ma puoi anche usare il menu time-> zoom-> zoom completo che è ALT-F sulla mia installazione. poi imparerai come ingrandire e rimpicciolire le cose.

Parlando per esperienza personale, non vedrete "il vostro codice" funzionare meglio di un simulatore di hdl. In realtà, una volta che ci si abitua a questo, si può avere difficoltà a girare su silicio, dove praticamente non si vede nulla.

Non ho fatto altro che eseguire il programma di test incluso in tale modello comportamentale. non so cosa puoi o non puoi fare con esso

Un verilog $ readmemh è piuttosto semplice, vuole solo leggere righe di hex in qualsiasi memoria specificata. Così puoi facilmente creare uno strumento che prende il tuo codice di accesso compilato e crea il file ASCII che vuole la simulazione Verilog.

+0

Nota un modello comportamentale (HDL) non è un modello sintetizzabile che significa che non puoi creare un chip da esso, niente che ARM debba preoccuparsi di essere là fuori allo scoperto. –

4

QEMU

Forse si riferivano al programma di installazione binario sperimentale per Windows. Per l'installazione di origine su Windows, vedere this documentation.

+0

C'è un altro con una migliore interfaccia utente? – Betamoo

2

Qemu supporta Windows ed è un emulatore di primo livello per ARM. Naturalmente, gli stati esatti della pipeline non sono disponibili, ma la vista dell'emulazione del programmatore è disponibile.

1

È passato molto tempo da questa domanda. Ancora pensato sarebbe bello scrivere una risposta per coloro che hanno familiarità con C. Questa è una piccola applicazione C che emula alcune/seguendo istruzioni di assemblaggio ARM, dove è possibile aggiungere debug o stampare i risultati nei punti per controllare le fasi di esecuzione .

  1. Pipeline: Dimensioni 4
  2. Riserve posizioni di memoria per; Interrompi le istruzioni e le istruzioni per l'utente.
  3. Conta i cicli per ciascuna istruzione e i cicli totali.
  4. Istruzioni per l'elaborazione dei dati: imposta i flag di overflow e carry.
  5. Istruzioni filiale: utilizza stack per archiviare i dati del collegamento in caso di necessità.
  6. Istruzioni per il trasferimento dei dati.
  7. Interrompe istruzioni: Esegue l'istruzione di interrupt nel set di istruzioni di input o accetta l'istruzione hardware prima di recuperare una nuova istruzione.
  8. Stampa i registri, la memoria accessibile all'utente, la memoria di stack e gli indicatori di stato. Le variabili "debugEnabled" e "instructionLogEnabled" possono essere attivate per ulteriori informazioni nell'output.

codice sorgente è disponibile qui: http://www.omidmufeed.com/arm-assembler-emulator-with-c/

1

ARMSIM

ARMSim # è un'applicazione desktop in esecuzione in un ambiente Windows. Consente agli utenti di simulare l'esecuzione di programmi in linguaggio assembly ARM su un sistema basato sul processore ARM7TDMI.

Da me: si tratta di un simulatore died è specifico per il processore, vale a dire, in esecuzione ARM Linux sotto QEMU, come altri hanno suggerito, è una scelta migliore quando la sperimentazione di soluzioni di vita reale. Il prossimo passo è nudo metallo ARM, che nel 2015 è economicamente raggiungibile con Raspberry PI.

Problemi correlati