Reverse-Engineering-Zielchip zur Verwendung mit OpenOCD

Ich habe ein Board mit JTAG-Pins und möchte OpenOCD mit dem Board verbinden. Allerdings ist die CPU-Chip-Identifikationsnummer nicht auf dem Chip geschrieben und ich konnte das Datenblatt der Platine nicht finden.

Was muss ich tun, um die Chip-Identifikationsnummer zu finden?

Verschrotten Sie es und kaufen Sie ein Board mit Dokumentation.
@LeonHeller openocd wird häufig beim Reverse-Engineering von Verbrauchergeräten unbekannten Typs verwendet. siehe reverseengineering.stackexchange.com/questions/1374/…
Bedeutung von Reverse Engineering: en.wikipedia.org/wiki/Reverse_engineering

Antworten (1)

Die JTAG-Spezifikation (die vernünftigerweise auf der Wikipedia-Seite beschrieben wird) definiert eine IDCODE-Anweisung als Teil der obligatorischen Implementierung, und eine für das Debuggen vorgesehene Scan-Kette entspricht normalerweise diesem Teil der Spezifikation, um Tools mit einigen grundlegenden Zugriffsinformationen bereitzustellen. Denken Sie daran, dass es sogar für einen einzelnen Chip mehrere TAPs in Reihe geben kann und das Datenregister ein großes Schieberegister ist (damit Sie seine Länge testen können).

Sobald Sie den ID-Registerwert haben, können Sie mit der Identifizierung des Teils beginnen. Wenn es über einen ARM CoreSight DAP verfügt, überbrückt dieser die JTAG-Zugriffe auf einen speicherabgebildeten Debug-Bus. Sie können die ROM-Tabelle lokalisieren, die die Adresspositionen aller Debug-Komponenten bereitstellt, von denen eine CPU-Debug sein sollte.

Um diese Zugriffe durchzuführen, müssen Sie die rohen JTAG-Zugriffe auf niedriger Ebene in openocd verwenden, anstatt über die typischere Debugger-GUI zuzugreifen. Das openOCD-Handbuch ist dafür der beste Ausgangspunkt.