Domanda

Sono un novizio completo al mondo ARM. Ho bisogno di essere in grado di scrivere codice C, compilarlo, e poi scaricare in un emulatore ARM, ed eseguire. Ho bisogno di utilizzare il compilatore GCC 4.1.2 per la compilazione di codice C.

Qualcuno può punto me nella direzione corretta per i seguenti problemi?

Cosa catena di strumento da utilizzare?

Cosa emulatore per l'uso?

Ci sono tutorial o guide su come configurare il tool chain?

È stato utile?

Soluzione

la costruzione di un gcc croce compilatore se stessi è abbastanza facile. la libreria gcc e la libreria C e altre cose non tanto, una libreria embedded e un tale po 'più difficile. Dipende da come Embedded desidera ottenere. Ho poco uso per gcclib o di una libreria C in modo da rotolare il proprio opere grandi per me.

Dopo molti anni di fare questo, forse è una cosa di età, ora appena ottenere gli strumenti del codice SOURCERY andare. la versione lite funziona alla grande. yagarto, devkitarm, WinARM o qualcosa del genere (il sito con un triliardo di esempi) tutto bene il lavoro. Emdebian ha anche una toolchain buon pre-costruito. un certo numero di questi luoghi, se non tutti hanno informazioni su come hanno costruito le loro toolchain da fonti GNU.

È chiesto di gcc, ma tenere a mente che LLVM è un concorrente forte, e per quanto riguarda la compilazione incrociata va, dal momento che sempre compila croce, è un compilatore molto più facile croce da scaricare e costruire e far funzionare di gcc. la versione recente sta producendo codice (per braccio) che compete con gcc per le prestazioni. gcc è in alcun modo un leader in termini di prestazioni, altri compilatori che ho cerchi run usati intorno ad esso, ma è stato migliorato con ogni release (e le versioni 3.x volte producono codice migliore rispetto alle versioni 4.x, ma è necessario 4 .x per i nuovi nuclei e thumb2). anche se si va con gcc, provare la versione stabile di LLVM di volta in volta.

QEMU è un buon emulatore, a seconda di cosa si sta facendo l'emulatore gba gameboy virtuale anticipo è buono. Ci sono un paio di nds emulatori troppo. GDB e in altri luoghi hanno quelli che sembrano essere proprio ARM armulator. Ho trovato difficile da estrarre e utilizzare, così ho scritto il mio, ma essendo pigro implementato solo il set di istruzioni del pollice, ho chiamato il mio il thumbulator. facile da usare. Molto più facile che QEMU e armulator per aggiungere periferiche da e per guardare e il debug del codice. YMMV.

Hmmm ho postato una risposta simile per qualcuno di recente. Google: braccio Verilog e al UMich troverete un'isc.tgz file in cui è un ARM10 comportamentale (come in non si può fare un chip da esso pertanto è possibile trovare Verilog in rete) modello. Che per qualcuno che vuole imparare un set di istruzioni, guardando il vostro codice di eseguire a livello di porta è di circa buono come si arriva. Fate attenzione, come una droga, si può diventare dipendenti poi hanno un momento difficile quando si torna al silicio in cui si dispone relativamente visibilità pari a zero nel codice mentre è in esecuzione. Da qualche parte in StackOverflow ho postato i passaggi necessari per ottenere quel modello ARM10 e un altro file o due per trasformarlo in un emulatore braccio utilizzando Icarus Verilog. GTKWave è uno strumento gratuito e buona per l'esame della files onda (VCD).

Sopra ogni altra cosa sarà necessario l'ARM ARM. (Il braccio architettonica Manuale di riferimento). Basta google e trovare sul sito web di ARM. C'è pseudo codice per ogni istruzione l'insegnamento è quello che fanno. Utilizzare il thumbulator o armulator o altri, se avete bisogno di capire di più (MAME ha un core ARM in esso troppo). Faccio garanzie che il thumbulator è 100% debug o accurate, ho preso alcuni programmi comuni e rispetto la loro produzione di silicio sia braccio e non braccio debug del nucleo.

Altri suggerimenti

toolchain è possibile utilizzare Yagarto http://www.yagarto.de/

emulatore è possibile utilizzare Proteus ISIS http://www.labcenter.com/index.cfm (Esiste una versione demo)

e tutorial, beh, li google =)

In bocca al lupo!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top