Forum: Mikrocontroller und Digitale Elektronik Suche ARM Simulator (ähnlich wie simulavr‹)


von Norbert (Gast)


Lesenswert?

Einen schönen Guten Morgen allesamt.
Wie im Betreff schon sanft angedeutet suche ich
(ganz so wie im Stile des ›simulavr‹ als AVR-Simulator)
nun einen ARM Simulator für:
1
ARCH = -mcpu=cortex-m0plus -march=armv6-m -mthumb
Hat jemand schon einen solchen ARM-Simulator gefunden, getestet und für 
gut befunden?
Danke schon einmal im voraus.

PS: Sollte, nein müsste auf Linux laufen!

von Εrnst B. (ernst)


Lesenswert?

https://wiki.qemu.org/Documentation/Platforms/ARM

ist aber eher für "größere" ARMs gedacht, obwohl auch Cortex-M{3,4} 
unterstützt werden. Ob der mit machine=none deinen M0 emulieren kann, 
musst du selber rausfinden.

: Bearbeitet durch User
von Norbert (Gast)


Lesenswert?

Εrnst B. schrieb:
> https://wiki.qemu.org/Documentation/Platforms/ARM
> ist aber eher für "größere" ARMs gedacht, obwohl auch Cortex-M{3,4}
> unterstützt werden. Ob der mit machine=none deinen M0 emulieren kann,
> musst du selber rausfinden.
Verdammt, an den QEMU hatte ich natürlich überhaupt nicht gedacht.
Werd' ich gleich mal reinschauen.
Da fällt mir ein, hab' ja auch noch einen alten RPi. facepalm
Vielen Dank für den Denkanstoß und die Info.

von Programmierer (Gast)


Lesenswert?

IAR EWARM hat einen integrierten Simulator. Bin allerdings allgemein 
kein großer Fan von IAR und würde daher auch den qemu vorschlagen. Den 
benutzen wir auf einem CI-System um Unit-Tests durchzuführen.

Der qemu simuliert natürlich keine Mikrocontroller-Peripherie, aber 
dafür funktionieren einige der normalen Linux-Syscalls direkt aus dem 
ARM-Code heraus; d.h. du kannst "ganz normal" printf() aufrufen und das 
ARM-Programm auf der Konsole laufen lassen und erhältst die Ausgaben. Du 
kannst den Kernel sogar so konfigurieren dass er qemu automatisch für 
alle ARM-Programmdateien aufruft. Das finde ich schon ziemlich cool.

von Jim M. (turboj)


Lesenswert?

Braucht man bei den Cortex-M nicht.

Stattdessen verbindet man den Debugger mit der "echten" Hardware via 
JTAG oder SWD. Unter Linux siehe OpenOCD (oder z.B. Segger JLink).

Die Simulatoren (z.B. QEmu) haben üblicherweise nicht den vollständigen 
Zoo an Peripherie implementiert, der zusätzlich zum Cortex-M Core im µC 
verbaut ist.

von Norbert (Gast)


Lesenswert?

Programmierer schrieb:
> Der qemu simuliert natürlich keine Mikrocontroller-Peripherie, aber
> dafür funktionieren einige der normalen Linux-Syscalls direkt aus dem
> ARM-Code heraus; d.h. du kannst "ganz normal" printf() aufrufen und das
> ARM-Programm auf der Konsole laufen lassen und erhältst die Ausgaben. Du
> kannst den Kernel sogar so konfigurieren dass er qemu automatisch für
> alle ARM-Programmdateien aufruft. Das finde ich schon ziemlich cool.

Das isses. Genial. Da es mir hauptsächlich (nee ausschließlich) um die 
CPU und Assembler geht, wird das wohl die erste Wahl.

PS: Danke auch an @Jim M. Wird wichtig wenn's später an die Peripherie 
geht.

von Klaus W. (mfgkw)


Lesenswert?

Nur zur Sicherheit: du kennst https://godbolt.org/ ?

von Stefan F. (Gast)


Lesenswert?

Meine erste Wahl wäre ein originales Nucleo Board, die bekommt man ab 15 
Euro.

von Norbert (Gast)


Angehängte Dateien:

Lesenswert?

Klaus W. schrieb:
> Nur zur Sicherheit: du kennst https://godbolt.org/ ?
Hatte ich von gehört, aber nie reingeschaut.
Nun hab' ich, bin erschüttert! ;-)
Da ich sowieso gerade das v6-M Arch. Ref. Manual auf hatte, gleich mal 
ein
1
stmia r0!, {r1, r2, r3, r4, r5, r6, r7}
geprüft.
Er macht's, 0xc0fe, die Leute sind doch völlig krank. ;-)
Cooles Teil, kommt in die Link-Sammlung.
Danke!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.