Was genau ist ein Flash-Emulator und wie funktioniert er?

Ich habe von einem Flash-Emulator gelesen . Kann mir jemand sagen, was genau ein Flash-Emulator ist und wie er funktioniert? Ist es gleichbedeutend mit einem In-Circuit-Emulator?

Aus meiner Erfahrung scheint es nur ein Begriff zu sein, der von TI für Programmierer + Debugger verwendet wird. Es ist kein gewöhnlicher In-Circuit-Emulator, bei dem der tatsächliche Chip emuliert wird, da er Debug-Funktionen des Zielchips verwendet.

Antworten (1)

Ein Flash-Emulator wird in einem System verwendet, das seinen Programmcode normalerweise in einem FLASH-Speicherchip hält.

Der Emulator ist ein kleines Stück Hardware, das den normalen FLASH-Speicherchip ersetzt, um das normale FLASH zu deaktivieren, und seine Funktionalität ersetzt. Manchmal wird der normale FLASH-Chip ausgesteckt und der Emulator in den Chipsockel gesteckt. In anderen Fällen verfügt die Zielplatine über einen speziellen Anschluss, an den der Emulator angeschlossen wird. Der Vorgang des Einsteckens des Emulators deaktiviert das normale FLASH und aktiviert dann den Emulator. Ein dritter üblicher Typ ist das Verbinden des Emulators über einen Chipclip, der über den FLASH-Chip auf der Zielplatine geklemmt wird.

Wenn der Emulator vortäuschen soll, der FLASH für die zu testende Platine zu sein, muss er Speicher liefern, der Programmcode für den Prozessor auf der Platine enthalten kann. Dieser Speicher ist normalerweise in Form von RAM innerhalb des Adapters, zwischen dem sich Klebehardware und die FLASH-Schnittstelle befindet, um das normale FLASH-Lese-/Schreibschnittstellenprotokoll in das umzuwandeln, das für den Zugriff auf diesen RAM erforderlich ist. Auf diese Weise kann der Prozessor auf der Zielplatine Code abrufen und ausführen, der im RAM des Emulators enthalten ist.

Der RAM aus dem Emulator ist auch dualportiert zu einer vom Host zugänglichen Schnittstelle, so dass die RAM-Inhalte geladen werden können. Der Host ist oft ein Computer vom PC-Typ mit Cross-Compiler-, Assembler- und Linker-Tools, der in der Lage ist, Programm-Images für die Ziel-MCU zu erzeugen. Der Host-Computer greift dann auf den Flash-Emulator zu, sodass der Code auf der Ziel-MCU ausgeführt und getestet werden kann. Die Schnittstelle zwischen dem Host-Computer und dem Emulator kann eine Vielzahl unterschiedlicher Typen sein, einschließlich Parallelanschluss, USB, seriell oder Ethernet. USB-Schnittstellen sind heute weit verbreitet.

Heutzutage ist in der Welt der eingebetteten MCUs die Verwendung tatsächlicher Flash-Emulatoren wie beschrieben ziemlich ungewöhnlich. Fast alle Mainstream-MCUs verfügen über einen integrierten FLASH-Speicher und integrierte Debug-Harware, die das Laden des FLASH aus der Ferne ermöglicht. Die Debug-Hardware wird verwendet, um das Testen des Codes zu ermöglichen, während er ausgeführt wird. Die Debug-Schnittstelle zur MCU ist ein spezieller Satz von Pins, die mit einem speziellen Downloader/Debug-Pod verbunden sind. Der Host-Computer ist normalerweise über USB oder Ethernet mit diesem Debug-Pod verbunden, und spezielle dedizierte Software auf dem Host wird verwendet, um die FLASH-Programmierung durchzuführen und die Debug-Schnittstelle in der Ziel-MCU zu betreiben.

Danke für die Erläuterungen. Es beseitigt viele Zweifel, die ich hatte.
Es kann sich lohnen zu beachten, dass sich Flash-Emulatoren in ihrem Grad an "Realismus" unterscheiden können. Da einige Aspekte des Verhaltens von Flash-Chips mit dem Alter willkürlich variieren können, ist es möglich, einen Emulator so zu entwerfen, dass alles, was eine realistische Chance hat, auf einem echten Chip zu arbeiten, auf dem Emulator funktioniert oder dass alles, was eine realistische Chance hat, funktioniert Ein Fehler auf einem echten Chip wird auf dem Emulator fehlschlagen. Einige Emulatoren bieten möglicherweise eine Möglichkeit, das simulierte Verhalten zu "tunen", aber ich habe mir die Einzelheiten von leicht verfügbaren Emulatoren nicht angesehen.