Frage

Ich bin ein absoluter Neuling auf die ARM-Welt. Ich muss in der Lage, C-Code zu schreiben, kompilieren und dann laden in einen ARM-Emulator, und auszuführen. Ich brauche die GCC 4.1.2 Compiler für die C-Code-Kompilierung zu verwenden.

Kann jemand Punkt mich in der richtigen Richtung für die folgenden Probleme?

Was Werkzeugkette zu benutzen?

Was Emulator zu benutzen?

Gibt es Tutorials oder Leitfäden für die Einstellung der Werkzeugkette nach oben?

War es hilfreich?

Lösung

Aufbau eines gcc Cross-Compiler selbst ist recht einfach. die gcc-Bibliothek und die C-Bibliothek und andere Dinge nicht so viel, eine eingebettete Bibliothek und so ein wenig härter. Hängt davon ab, wie eingebettet Sie erhalten möchten. Ich habe wenig Verwendung für gcclib oder eine C-Bibliothek, um Ihre eigenen Werke groß für mich rollen.

Nach vielen Jahren, dies zu tun, ist es vielleicht ein Alter Sache, ich jetzt gehen Sie einfach den Code sourcery Tools. die Lite-Version funktioniert super. Yagarto, devkitarm, WinARM oder so ähnlich (die Website mit zig Beispiele) alle gut funktionieren. emdebian hat auch eine gute vorgefertigte Werkzeugkette. eine Reihe von diesen Orten, wenn alle Informationen haben nicht, wie sie ihre Werkzeugketten aus Gnu Quellen gebaut.

Sie gefragt, gcc, aber bedenken Sie, dass llvm ist ein starker Konkurrent, und so weit wie Kreuzkompilierung geht, da es immer Quer compiliert, ist es eine viel einfacher Cross-Compiler zum Download und bauen und erhalten arbeiten als gcc. die aktuelle Version produziert jetzt Code (für Arm), die mit gcc für die Leistung konkurriert. gcc in keiner Weise ist ein führendes Unternehmen in der Leistung, andere Compiler ich um ihn gebrauchte Lauf Kreise haben, aber es hat sich mit jeder neuen Version verbessert hat (auch die 3.x-Versionen produzieren manchmal besseren Code als die 4.x-Versionen, aber Sie müssen 4 .x für die neueren Kerne und thumb2). auch wenn Sie mit gcc gehen, versuchen, die stabilen Version von llvm von Zeit zu Zeit.

Qemu ist ein guter Emulator, je nachdem, was Sie den GBA Emulator tun virtuellen Gameboy Advance gut ist. Es gibt ein paar nds zu Emulatoren. GDB und andere Orte haben, was Arm seine eigenes ARMulator erscheinen. Ich fand es schwer zu extrahieren und zu verwenden, so dass ich meine eigenen geschrieben, aber nur mit dem Daumen-Befehlssatz ist faul umgesetzt, rief ich mein der thumbulator. Einfach zu verwenden. Weit einfacher als Qemu und ARMulator hinzuzufügen Peripheriegeräte und zu beobachten und Ihren Code debuggen. ymmv.

Hmmm ich gepostet eine ähnliche Antwort für jemanden vor kurzem. Google: Arm Verilog und bei umich finden Sie eine Datei isc.tgz, in dem ein ARM10 Verhalten finden (wie in nicht einen Chip daraus machen kann daher können Sie im Netz finden Verilog) -Modell. Welche für jemanden zu wollen, einen Befehlssatz lernen, beobachten Sie Ihren Code auf Gatterebene auszuführen ist ungefähr so ??gut wie es geht. Seien Sie vorsichtig, wie eine Droge, können Sie süchtig dann eine harte Zeit, wenn Sie zurück zu Silizium gehen, wo Sie relativ null Sicht in den Code haben, während es ausgeführt wird. Irgendwo in Stackoverflow habe ich geschrieben, die dieses ARM10-Modell beteiligt Schritte zu bekommen und eine andere Datei oder zwei es in einen Arm Emulator drehen mit Icarus Verilog. gtkwave ist ein gutes und kostenloses Tool zur Prüfung der Welle (vcd-Dateien).

Vor allem Sie die ARM ARM müssen. (Das ARM-Handbuch Architektur Referenz). Google es einfach und finden Sie es auf ARM-Website. Es gibt Pseudo-Code für jede Anweisung, die Sie lehren, was sie tun. Verwenden Sie die thumbulator oder ARMulator oder andere, wenn Sie verstehen, müssen mehr (MAME hat einen Arm Kern darin auch). Ich mache keine Garantien, dass der thumbulator 100% ausgetestet oder genau, habe ich ein paar gemeinsamen Programme und verglichen ihre Ausgabe an Silizium sowohl Arm und nicht-Arm um den Kern zu debuggen.

Andere Tipps

Toolchain können Sie verwenden Yagarto http://www.yagarto.de/

Emulator können Sie Proteus ISIS verwenden http://www.labcenter.com/index.cfm (Es gibt eine Demoversion)

und Tutorials, na ja, google sie =)

Viel Glück!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top