Emulation und Simulation

Gast #167031
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
Gast #167032
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
Admin Persönliche Seite #167034
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.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.