Übersetzung des Artikels " Tear in Stücke " aus Jason Gins BlogTL; DR: Ja, mit dem Keysight 1000 X-Series-Oszilloskop können Sie Doom! Dies ist jedoch nicht einfach.
Keysight DSOX1102GDas Oszilloskop sollte jeden selbstbewussten Elektronik-Enthusiasten in seinem Arsenal haben. Kurz gesagt, mit Oszilloskopen können Sie die Wellen elektrischer Signale in der Schaltung untersuchen. Digitale Oszilloskope (DSO) sind unverzichtbar, da sie seltene Fehler im Signal finden können, die ein analoges Oszilloskop oder Multimeter nicht erkennt.
Das Thema meines Artikels ist
DSOX1102G von Keysight Technologies (ehemals Agilent) aus der kostengünstigen Reihe von Oszilloskopen, die im Vergleich zu Wettbewerbern ein gutes Preis-Leistungs-Verhältnis aufweisen. Wie die meisten ihrer Oszilloskope läuft auf diesem Modell das integrierte
Windows Embedded CE 6.0- Betriebssystem (auch als Windows CE oder WinCE bekannt), aber wie in den meisten WinCE-Anwendungen wird die Benutzeroberfläche fast nie angezeigt - es verbirgt sich hinter einem speziell entwickelten Betriebssystem Benutzeroberfläche.
Stufe 1: Erwachen
Als die Keysight 1000-X-Serie Anfang 2017 auf den
Markt kam, bemerkte einer der
Prüfer bei
Hackaday, dass die Methode zum Speichern von Daten auf diesen Oszilloskopen manchmal zu Abstürzen und Neustarts führte, und stellte fest, dass vor dem Laden einige Sekunden lang ein Mauszeiger auf dem Bildschirm angezeigt wurde . In seinem Beitrag befand sich ein GIF, in dem er eine Datei speichert, die einen Absturz verursacht, und ich bemerkte etwas Seltsames in einem der Frames der Animation - dort konnte man die Windows-Taskleiste unmittelbar vor dem schwarzen Bildschirm mit einem Fehler unterscheiden. Interessant! ..

Nachdem ich mein Oszilloskop dank des Scope Month-Wettbewerbs von Keysight gewonnen hatte, dachte ich einige Monate lang nicht darüber nach, bis ich auf einen Bildschirm stieß, auf dem ich selbst einen Fehler hatte. In meinem Fall stellte ich fest, dass der Windows CE-Header über der Fehlerbehandlungsroutine des Oszilloskops sichtbar war. Das Ziehen des Headers hinterließ eine Markierung und ließ WinCE hängen. Dies geschah sehr selten. Nachdem ich später auf Fehler gestoßen war, erlaubte ich dem Handler einfach, das Dateisystem zu scannen und das Betriebssystem neu zu starten.
Das hat mich jedoch fasziniert und ich wollte viel darüber wissen, was mit dem zugrunde liegenden WinCE-System los ist. Ich habe festgestellt, dass der USB-Anschluss des Oszilloskops ziemlich fehleranfällig ist und nur das Umdrehen des Flash-Laufwerks in den Anschluss einen Absturz verursachen kann. Dies reichte jedoch nicht aus, um die erforderliche Menge an Informationen zu sammeln, da es sich um eine unzuverlässige Methode handelte.
So begann meine Suche nach Zugriff auf den WinCE-Desktop.
Zuerst habe ich eine reine Softwarelösung ausprobiert und versucht, eine .ksx-Firmware-Aktualisierungsdatei zu erstellen (tatsächlich handelt es sich nur um ein CAB-Archiv), mit der das Oszilloskopprogramm heruntergefahren und der Windows Explorer geöffnet werden konnte - es hat nicht funktioniert. Die Oszilloskop-Software gab eine Fehlermeldung aus, in der sie sich darüber beschwerte, dass die Datei nicht geöffnet werden konnte. Es stellt sich heraus, dass eine solche Lösung nicht funktionieren würde, selbst wenn ich sie zum Herunterladen der Update-Datei gezwungen hätte, da die Oszilloskop-Software während des Updates nicht auf den Desktop wechselt. Nachdem ich auf dieses erste ernsthafte Hindernis gestoßen war, legte ich vorübergehend die Neugier beiseite und benutzte das Oszilloskop für den beabsichtigten Zweck.
Stufe 2: Schauen Sie genauer hin
Aufgrund meiner Neugier habe ich mich einmal entschlossen zu prüfen, ob das Oszilloskop 3,5-Zoll-Disketten (oder, wie die Jugend sagt, ein gedrucktes Speichersymbol) über den USB-Anschluss lesen und schreiben kann - und das könnte es! Ich bemerkte jedoch ein seltsames Problem: das Oszilloskop Es stürzte ab, wenn ich das Laufwerk beim Einschalten von Eureka im USB-Anschluss belassen habe. Ich habe einen Weg gefunden, einen Absturz zuverlässig zu verursachen.
Hier erwartete mich leider ein zweites ernstes Hindernis. Dieser Startfehler trat nur auf, wenn ein einzelnes Gerät am USB-Anschluss enthalten war - das Laufwerk. Es gab keinen Fehler, wenn ich einen USB-Hub mit Laufwerk verwendete. Dies bedeutete, dass ich sehr schnell zwischen dem Laufwerk und einer USB-Maus mit Tastatur wechseln musste. Die Eile, das Laufwerk so schnell wie möglich zu entfernen und die Kombination aus Tastatur und Touchpad während des Startvorgangs in USB einzufügen, war anstrengend und ärgerlich. Ich brauchte eine bessere Lösung - eine Hardwarelösung.
Spezieller A / B-Schalter für USB, hergestellt von mir zum schnellen Austausch von GerätenMit einem alten USB-Kabel, einem toten USB-Hub und einem DPDT-Switch habe ich einen USB-A / B-Switch erstellt, um das Umschalten zwischen Geräten zu vereinfachen und zu beschleunigen. Mit dieser Methode konnte ich versuchen, für den Bruchteil einer Sekunde Kontakt mit WinCE OS aufzunehmen, während die Taskleiste auf dem Bildschirm sichtbar war und bis der Fehlerbehandler alle Himbeeren für mich kaputt machte. Mithilfe der Magie in Zeitlupenaufnahmen meines Samsung Galaxy S9 konnte ich feststellen, dass ich Tastenanschläge an WinCE senden kann und diese verarbeitet - sogar auf dem Bildschirmschoner des Systems! Ich konnte Informationen über das System erhalten, indem ich blind die Tasten drückte und dann die Reaktion untersuchte, wenn eine Oszilloskop-Software abstürzte. Dann stieß ich auf ein zweites Hindernis.
Die Möglichkeit einer sehr kurzen Interaktion mit WinCE ist gut, aber nutzlos, da ich die Kontrolle nicht übernehmen konnte, bis der Fehlerbehandler das System neu gestartet hat. Der Handler klammerte sich fest an das Betriebssystem, und ohne Wischen auf der Tastatur und Strg + Alt + Entf konnte ich zu WinCE zurückkehren.
Stufe 3: Auf der Suche nach einem Halt
Und wieder war meine Neugierde, regelmäßig zu spielen, nützlich, als ich mich entschied, meinen alten
Sony Clie PEG-NX73V (Handheld auf PalmOS von 2003) als USB-Laufwerk zu verwenden. Es hatte eine Datenimportfunktion, mit der Sie Dateien auf dieselbe Weise wie auf einem Wechseldatenträger auf eine Speicherkarte ziehen und dort ablegen konnten.
Genau wie bei einem USB-Laufwerk trat ein Systemabsturz auf, als ich das Oszilloskop einschaltete, ohne den PDA herauszuziehen. Diesmal entschied der Fehlerbehandler jedoch, dass das PDA-Dateisystem ein beschädigter Firmware-Bereich ist, und schlug vor, das Firmware-Update von einem externen USB-Flash-Laufwerk herunterzuladen.

Dieses Verhalten war nicht regelmäßig, manchmal war die Oszilloskop-Software noch geladen, und in WinCE erschien ein sehr seltsames Fenster mit einem hellblauen Mauszeiger, der Spuren auf dem Bildschirm hinterließ. In diesem seltsamen Zustand gelang es mir jedoch, das InfiniiVision-Oszilloskop-Softwarefenster zur Seite zu ziehen, und ich versuchte, das Betriebssystem abzustoßen. Die Oszilloskop-Software verhielt sich jedoch sehr aggressiv und stellte jedes Mal den Fokus wieder her, nachdem sie aus dem Fenster geklickt hatte. Nach einigem Aufhebens mit einem seltsam gemalten Betriebssystem konnte ich es umgehen. Ich konnte das Dateisystem nicht anzeigen, da ich über das Oszilloskop-Softwarefenster lange Zeit keine Kontrolle übernehmen konnte, aber ich konnte das Dialogfeld mit den Systemeigenschaften aufrufen, in dem geschrieben wurde, dass das Oszilloskop auf Windows CE 6.00 basiert und über 100 MB RAM verfügt.

Dann habe ich mich entschlossen, in den EEVblog-
Foren zu stöbern, in denen die Leute aktiv versuchen, das Oszilloskop zu hacken, um zusätzliche Möglichkeiten zu eröffnen. Dort stellte ich fest, dass die Software nach der Datei infiniiVisionStartupOverride.txt im Stammverzeichnis des USB-Sticks suchte, und wenn sie diese fand, versuchte sie, die Oszilloskop-Software von ihr herunterzuladen. Und obwohl die Firmware die Software anscheinend nicht vom Flash-Laufwerk heruntergeladen hat, hat dieser Vorgang den Start der Oszilloskop-Software unterbrochen, und dann hat mir niemand die Betriebssystemsteuerung abgenommen. Von diesem Moment an wurde alles interessanter - der Fehlerbehandler öffnete das Explorer-Fenster und gab "*. *" Ein. Im Feld Dateiname konnte ich das Dateisystem des Oszilloskops und ein USB-Flash-Laufwerk durchsuchen! Genau das brauchte ich, um die Kontrolle über WinCE zu erlangen. Ich stieß jedoch auf ein anderes Hindernis: Das Oszilloskop wurde nach 60 Sekunden neu gestartet, weshalb ich nicht viel Zeit hatte, um im Betriebssystem zu graben.
Anforderung eines Firmware-Updates DSOX1102G mit einem Dateiauswahldialog von einem Flash-Laufwerk
Der Windows CE-Task-Manager zeigt laufende Prozesse auf dem Firmware-Wiederherstellungsbildschirm anNachdem ich mehrere Windows CE-Tools, z. B. Windows CE Task Manager, kopiert hatte, stellte ich zwei interessante Prozesse fest, die gestartet wurden, als der Fehlerbehandler noch sichtbar war: recoveryInfiniiVision.exe und processStartupFolder.exe; Anscheinend war der erste ein Fehlerbehandler, der mir nach einem Absturz der Oszilloskop-Software keinen Zugriff auf WinCE gewährte. Nachdem ich den zweiten Prozess mit iTaskMgr geschlagen hatte (die kostenlose Version des WinCE-Task-Managers erlaubt keine Tötungsprozesse), konnte ich verhindern, dass das Oszilloskop neu gestartet wurde, und nachdem ich den ersten geschlagen hatte, sah ich einen sauberen WinCE-Desktop - und hier bin ich drinnen! Leider konnte ich die Taskleiste nicht wiederherstellen, weshalb das Navigieren im Betriebssystem ziemlich unpraktisch war.
Ich habe einen neuen Ordner auf dem Desktop erstellt, um den Explorer zu öffnen, und schließlich konnte ich das Dateisystem des Oszilloskops studieren. Das Programm Total Commander / CE, das über einen integrierten Texteditor verfügt, der nicht in dieser Version von WinCE enthalten war, hat sehr geholfen.
Mit Total Commander / CE in das Dateisystem eintauchen (noch keine Taskleiste)Stufe 4: volle Kontrolle
Nachdem ich es nun geschafft hatte, auf den himmelblauen Desktop zu gelangen, musste ich die Taskleiste wiederherstellen, um die volle WinCE-Erfahrung zu erzielen. Ich googelte, kletterte auf Stack Overflow und warf dafür ein kleines Programm. Beim Öffnen über den Explorer habe ich die Vollversion des WinCE-Desktops erhalten! Endlich hatte ich die volle Kontrolle über das Basisbetriebssystem!
Freiheit - ein vollständiger WinCE-Desktop auf einem Oszilloskop!Von diesem Moment an begann ich im Dateisystem zu stöbern und zu sehen, welche interessanten Werkzeuge dort zu finden sind. Der Befehlszeileninterpreter wollte nicht starten, aber ich stöberte in der Registrierung und fand den Schlüssel HKEY_LOCAL_MACHINE \ Drivers \ Console \ OutputTo, dessen Wert 0xFFFFFFFF war. Durch Ändern auf 0 gelang es mir, die Eingabeaufforderung auf dem Desktop sichtbar zu machen, und so ein weiteres kleines Programm zu erstellen, das genau das tat.
Alles lief gut, ich habe eine Batch-Datei mit allen Befehlen erstellt, die erforderlich sind, um die Oszilloskop-Software, den Startordner-Handler und den Fehler-Handler zu beenden, die Taskleiste wiederherzustellen und den Start der Eingabeaufforderung zu ermöglichen. Mein PDA musste jedoch das Fehlerbehandlungsmenü öffnen, was bedeutete, dass andere einen solchen Effekt nicht reproduzieren konnten.
Beim weiteren Stöbern stellte ich fest, dass WinCE, sobald der Begrüßungsbildschirm angezeigt wurde und die LEDs auf dem Bedienfeld zu blinken begannen, Tastenanschläge verarbeitete, auch ohne dass ein Gerät Software fallen ließ. Durch Drücken von win + U wurde das Oszilloskop angehalten, da dies das Startmenü öffnete und die Option Anhalten auswählte (und das Betriebssystem danach keine Möglichkeit hatte, die Steuerung zurückzugeben, da das Oszilloskop nur eine Ausschalttaste hatte). Aus diesem Grund habe ich meine Datei in a.bat umbenannt, damit der Name einfacher eingegeben werden kann, und versucht, sie auszuführen, wenn ich über win + R den Befehl \ usb \ a.bat lade und die Eingabetaste drücke. Aber das Oszilloskop zeigte als Ergebnis einfach den Bildschirmschoner auf dem Bildschirm, obwohl WinCE im Hintergrund am Leben war und ich einfach nicht sehen konnte, was dort geschah. Es stellt sich heraus, dass der Fehlerbehandler eine notwendige Komponente zur Demonstration des Betriebssystem-Desktops war, und ich musste nur ein paar Zeilen zur Batch-Datei hinzufügen, um den Fehlerbehandler zu starten und dann zu stoppen. Durch Hinzufügen dieser letzten Feinheiten konnte ich das Oszilloskop (halbautomatisch) direkt vor dem Erscheinen des Desktops mit nur einem USB-Flash-Laufwerk, einer Maus und einer Tastatur laden!
Stufe 4: Ja, es läuft DOOM!
Nachdem ich Zugang zu WinCE erhalten hatte, konnte ich endlich die Frage beantworten: "Beginnt Doom damit?" Und wie sich herausstellte, fängt es wirklich an! Nachdem ich das Oszilloskop gestartet hatte, dauerte es anderthalb Jahre, aber ich erreichte endlich diesen Meilenstein.
Es ist kein Scherz: Sie können Doom mit einem Keysight 1000 X-Oszilloskop ausführen!
Doom II läuft auf meinem DSOX1102G! (3 Bilder pro Sekunde)
Durch das Starten von Doom in einem 320 × 240-Fenster konnten genügend Bilder pro Sekunde für das Spiel komprimiert werden. Schauen Sie, was für eine Farbpalette!Im nächsten Artikel werde ich etwas mehr mit diesem legendären Videospiel auf einem Stück Eisen spielen, das nie für Spiele gedacht war.
Doom in Aktion mit einer Auflösung von 320 × 240, 256 Farben! Auf dem Oszilloskop!Dateien zum Herunterladen
Ich habe die Dateien hochgeladen, die Sie möglicherweise benötigen, um dasselbe auf meinem Oszilloskop zu versuchen - aber denken Sie daran, ich bin nicht dafür verantwortlich, daraus einen Ziegelstein oder etwas anderes Unangenehmes zu machen! Ich habe dies alles nur auf meiner DSOX1102G getestet, aber ich vermute, dass andere Modelle der 1000 X-Serie und andere Keysight-Oszilloskope mit Firmware-Wiederherstellungsfunktion ebenfalls funktionieren. Die Oszilloskop-Firmware ist so erstellt, dass alle WinCE-Dateien im RAM ausgeführt werden und nach einem Neustart nicht gespeichert werden. Alle Änderungen am Betriebssystem, die das System beschädigen, verwandeln das Oszilloskop nicht in einen Baustein (Dateien mit Firmware befinden sich in den Verzeichnissen des NAND-Flash-Laufwerks, die nicht über den Explorer geöffnet werden können, aber Sie können nur nach Namen wählen.
Das Flash-Laufwerk muss in FAT oder FAT32 formatiert sein und das
Scope Liberator- Zip-Archiv in sein Stammverzeichnis entpacken. Anweisungen finden Sie in readme.txt.
Wenn Sie sich für den
Quellcode von Hilfsprogrammen interessieren, die die Taskleiste und den Befehlszeileninterpreter zurückgeben, habe ich sie auch veröffentlicht.