2013-04-29 4 views
6

Ich habe mich schon eine Weile mit QEMU beschäftigt und habe versucht herauszufinden, ob ich damit ein Gerät, das wir entwickeln, simulieren kann.QEMU als eingebetteter Simulator für Firmware-Tests

Das Gerät wird mit einem ARM Cortex M3 betrieben und QEMU eignet sich gut für die Emulation seiner Software.

Was ich wissen möchte ist, wenn jemand QEMU in der Vergangenheit als Simulator verwendet hat?

Die Absicht ist, QEMU zu verwenden, um Black-Box-Tests der Software vor dem Ausrollen zu den Geräten in dem Feld durchzuführen.

Dies würde bedeuten, dass Sie den Speicherort, an dem Ihre PIO-Pins (Parallel Input/Output) konfiguriert und eingestellt sind, und die Speicherpositionen aller anderen Peripheriegeräte extern überwachen und ändern können.

Wenn man bedenkt, dass einige der Peripheriegeräte PWM und UART wären, ist es klar, dass Synchronisationsprobleme gelöst werden müssen. Allerdings möchte ich dieses Thema vorläufig vermeiden und nur auf einfache PIO setzen.

Die QEMU Monitor kommt nahe, ist aber noch nicht ganz da.

Um es zusammenzufassen:

Ich muss wissen, ob es einen Weg gibt QEMU nach jeder CPU-Taktzyklus zu unterbrechen und/Schreiben auf eine kleine Anzahl von Speicherplätzen im Codespeicher zu lesen.

+0

Ich habe seit dem ARMulator Projekt gefunden http://sourceforge.net/projects/armulator/ und RTSM Simulator Lösung http://www.arm.com/products/tools/software-tools/ds-5/rtsm- Simulator.php, die das gleiche tun könnte. – nonsensickle

Antwort

3

Haben Sie versucht, GDB stub zu verwenden? Sie können -s -S verwenden und über gdb per target remote :1234 eine Verbindung herstellen. Dies gibt Ihnen die Kontrolle über das Programm innerhalb von VM und Zugriff auf Register und Speicher.

+0

Danke, das scheint die beste verfügbare Option zu sein. Ich kann nicht glauben, dass ich nicht früher daran gedacht habe. Vielen Dank! – nonsensickle