Forum: Mikrocontroller und Digitale Elektronik Emulation und Simulation


von Junghans (Gast)


Lesenswert?

Servus,

eine dumme Frage, braucht Emulation von MCUs unbedingt Hardware
Emulator? Im Gegensatz dazu benötigen Simulationen bei DSPs nur
Software. Ist Emulation zuverlässiger als Simulation?

Gruss
Junghans

von Gerhard Gunzelmann (Gast)


Lesenswert?

Was heißt hier "zuverlässiger" ? Der Emulator ersetzt in deiner
Applikation den Prozessor oder den uC. Also ist hier Hardware
notwendig. Der Emulator ist in sofern "zuverlässoger" als er real auf
externe Signale reagiert, während der Simulator nur bedingt auf externe
Signale reagieren kann. Z.B. bei den PIC-Microcontrollern kann man
einige externe Signal simulieren (MPLAB-Simulator) aber man kann nicht
alles simulieren. Timing-geschichten kann man zuverlässig nur mit dem
Emulator überprüfen.


Gerhard

von z0ttel (Gast)


Lesenswert?

'... Timing-geschichten kann man zuverlässig nur mit dem
Emulator überprüfen ...'

Also IMHO stimmt das nicht ganz, da der Code im Emulator nicht zu 100%
dem finalen (der, der auf den uC geflasht wird) Code entspricht. Die
Abweichungen ergeben sich durch Zusätzlichen Code, den der Emulator
braucht, um z.B. Breakpoints zu verwalten oder Speicherinhalte
anzuzeigen / zu verändern.

Wenn Du wirklich genaue Informationen über das Timingverhalten haben
möchtest, bleibt m. M. nach nur die Variante, den geflashten uC
bestimmte Pins toggeln zu lassen und dieses Toggeln mit einem
Oszilloskop zu messen.


Aber - back to topic - ein vollwertiger Emulator (oder z.B. auch ein
JTAG-Debugger)ist den Debug-Möglichkeiten eines herkömmlichen
Simulators (z.B. auf PC-Ebene) weit überlegen, da der Code ja auf der
Zielarchitektur läuft.

ICE (In-Circuit-Emulator) -> die MCU auf dem PCB wird komplett durch
den ICE ersetzt, kein Verlust an Pins (vgl. JTAG-Debugger), oft wird
für jede unterschiedliche MCU ein anderer ICE benötigt - dafür gibt es
für fast alle MCUs entsprechende ICE, geringe Abweichungen vom
originalen Code, meistens recht teuer.

JTAG-Debugger -> die eigentliche MCU sitzt auf dem PCB und ist mit der
Applikation geflasht, Verlust an PINs (die PINs der JTAG-Schnittstelle
stehen der Applikation normalerweise nicht mehr zur Verfügung), nicht
jede MCU verfügt über eine JTAG-Schnittstelle, keine Abweichungen vom
Originalcode - da das Debugging über ein MCU-interne Monitorprogramm
abgewickelt wird, meistens recht günstig

Dann gibts bei den neueren Atmels noch das 1-wire-debug-interface,
womit ich mich allerdings nicht wirklich auskenne. Sollte aber sowas
wie das JATG-Interface sein, es werden weniger PINs benötigt (1 anstatt
4/5), ansonsten gilt wohl der Rest aus dem Kapitel JTAG


greetz
z0ttel

von Junghans (Gast)


Lesenswert?

Danke für Deine Antwort. Gibt’s Emulator auch für DSPs?

Gruss
Junghans

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

"Also IMHO stimmt das nicht ganz, da der Code im Emulator nicht zu 100%
dem finalen (der, der auf den uC geflasht wird) Code entspricht. Die
Abweichungen ergeben sich durch Zusätzlichen Code, den der Emulator
braucht, um z.B. Breakpoints zu verwalten oder Speicherinhalte
anzuzeigen / zu verändern."

Das wäre mir neu. Die Verwaltung der Breakpoints usw. wird doch nicht
in der Software gemacht, sondern in der Emulator- bzw. JTAG-Hardware.

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.