Einstieg in die Qemu-Erweiterung

Bauen und Start des Emulators

  • Zusätzlich installieren: Nur DTC vom GitHub nachladen mit git submodule install --init dtc

../<source_dir>/configure --target-list=arm-softmmu
make

Das Executable heisst dann arm-softmmu/qemu-system-arm.

Eine Liste der unterstützten CPUs und Boards bekommt man mit
qemu-system-arm -cpu ?
und
qemu-system-arm -machine help

Beim letzteren sollte dann auch das neue Target dabei sein (hier sam3n1b).

Start mit
qemu-system-arm -machine sam3n1b -nographic  -d in_asm,cpu -S -kernel <elf-image>

Bedeutung der Kommandozeilenoptionen:
  • -d in_asm,cpu erstellt ein Log mit CPU-Status vor jedem Befehl und dem Assemblercode
  • -S Beim Start von qemu wird die Emulation erst mal angehalten

Einstieg in den Quellcode

Ein neues Zielsystem wird als sog. QEMU-Machine eingehängt. Für einen kleinen Überlick: einfach nach einen vorhandenen Zielsystem suchen, z.B. nach "stellaris".

Die Ausführung des Emulators findet in der Funktion cpu_exec() statt.

Speziell für ARM Prozessoren:
  • Initialisierung: Verzeichnis target-arm, Datei cpu.c, Funktion arm_cpu_reset(): Hier wird der Initiale Stackpointer und der PC aus der Vektor-Tabelle gelesen

Nützliche Monitor-Kommandos

info registers

system_reset

-- JoergWeinhardt - 15 Jul 2013
Topic revision: r9 - 31 Jul 2013, JoergWeinhardt
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback