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?
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.
Leon Heller
pjc50
Kikapi