Wie erstelle ich eine QEMU ARM-Maschine mit benutzerdefinierten Peripheriegeräten und Speicherzuordnungen?

Ich schreibe einen Code für die Cortex-M3-CPU und führe Unit-Tests mit @ durcqemu-arm binär. Im Moment funktioniert alles einwandfrei. Aber ich frage mich, ob ich das ganze System mit @ testen kanqemu-system-arm? Ich meine, ich möchte eine benutzerdefinierte "Maschine" für qemu schreiben, in der ich die gewünschte Speicherzuordnung und eventuell eine Software-Nachahmung der gewünschten Peripheriegeräte definiere. Gibt es einige Beispiele für ein solches Modul? Ich habe nur sehr wenige Informationen darüber gefunden. Ich habe einen Quellcode in @ geleshw -Verzeichnis im QEMU-Quelltextbaum, aber es ist fast alles unkommentiert, und ich bin mir immer noch nicht sicher, ob ich weiß, wie ich der QEMU eine neue Maschine hinzufügen kann und wie Peripheriegeräte an den Adressraum angehängt werden?