Abo
  • Services:
Anzeige
Linux auf einem Digital-Oszilloskop
Linux auf einem Digital-Oszilloskop (Bild: Christer Weinigel)

OpenOCD zum Debuggen

OpenOCD ist ein Werkzeug, um über JTAG-Adapter mit der Debug-Schnittstelle auf einem Chip zu kommunizieren. Es unterstützt neben anderen auch meinen Bus Blaster als JTAG-Debug-Adapter. Das Programm bietet zwar keine direkte Unterstützung für den verbauten Samsung-SoC, allerdings tun das einige andere Modelle aus Samsungs S3C-Familie - und sie scheinen sich stark zu ähneln.

Anzeige

Die Dokumentation von OpenOCD ist nicht sonderlich gut. Aber nach einigem Trial and Error habe ich eine funktionierende openocd.cfg:

source [find interface/ftdi/dp_busblaster.cfg]
adapter_khz 1000
reset_config srst_only srst_open_drain
reset_config trst_and_srst

jtag newtap s3c2416 cpu -irlen 4 -ircapture 0x1 -irmask 0xf \
 -expected-id 0x07926f0f

target create s3c2416.cpu arm920t -endian little -chain-position \
 s3c2416.cpu

OpenOCD zeigt nach dem Start an, dass es etwas gefunden hat:

$ openocd -f openocd.cfg
...
Info : clock speed 1000 kHz
Info : JTAG tap: s3c2416.cpu tap/device found: 0x07926f0f \
 (mfg: 0x787 (), part: 0x7926, ver: 0x0)
Info : Embedded ICE version 6
Info : s3c2416.cpu: hardware has 2 breakpoint/watchpoint units
Info : accepting 'telnet' connection on tcp/4444

Jetzt kann ich mich mit OpenOCD verbinden und Dinge ausprobieren.

$ telnet localhost 4444
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Open On-Chip Debugger
> halt
s3c2416.cpu: target state: halted
target halted in ARM state due to debug-request, current mode: Supervisor
cpsr: 0x40000013 pc: 0x33c04664
MMU: disabled, D-Cache: disabled, I-Cache: disabled
> step
s3c2416.cpu: target state: halted
target halted in ARM state due to single-step, current mode: Supervisor
cpsr: 0x40000013 pc: 0x33c03990
MMU: disabled, D-Cache: enabled, I-Cache: disabled

Damit wird die CPU angehalten und führt CPU-Anweisungen im Einzelschrittmodus aus. Entsprechend des Speicher-Mappings laut dem Datenblatt des S3C2416 wird der DDR-RAM ab der Adresse 0x30000000 eingeblendet, die angezeigte Adresse 0x33c04664 liegt also in diesem RAM.

Jetzt kann ich herumspielen und Daten aus den Registern des SoC lesen und auch beschreiben. Für einen schnellen Test suche ich das Transmit-Register der seriellen Schnittstelle im Datenblatt. Es heißt UTXH0 und befindet sich an Adresse 0x50000020. Ich versuche, den Wert 0x55 (ASCII-Code für "U") in das Register zu schreiben: mww 0x50000020 0x55

Und tatsächlich: "U" wird über die serielle Schnittstelle ausgegeben. Jetzt weiß ich, wie ich Text ausgeben kann.

 Auf der Suche nach neuen KontaktenFlash-Speicher auslesen 

eye home zur Startseite
grslbr 22. Nov 2016

+1 Mehr davon und ich abonniere auch. Und wie laoladabamba sagt, die Weltraumartikel...

Themenstart

grslbr 22. Nov 2016

Aber ehrlich. Wenn's nur News über neue Grafikkarten gibt heulen die selben Leute über...

Themenstart

cherubium 22. Nov 2016

ich seh das ja auch immer mit einem zwinkernden Auge. Entwickler sollen entwickeln und...

Themenstart

maze_1980 22. Nov 2016

Die Chancen dass es ein Linux ist sind relativ gross. Würde es mich interessieren hätte...

Themenstart

okidoki 22. Nov 2016

Hier kann man mal sehen, was Fachkraft wirklich bedeutet. *Davon* haben wir zu wenige.

Themenstart

Kommentieren



Anzeige

Stellenmarkt
  1. Duisburger Versorgungs- und Verkehrsgesellschaft mbH, Duisburg
  2. Kommunale Datenverarbeitung Oldenburg (KDO), Oldenburg
  3. Universität Passau, Passau
  4. über Ratbacher GmbH, Raum Frankfurt am Main


Anzeige
Top-Angebote
  1. 198,00€
  2. 189,00€ + 4,99€ Versand (Vergleichspreis 224€)

Folgen Sie uns
       


  1. Verbraucherzentrale

    O2-Datenautomatik dürfte vor Bundesgerichtshof gehen

  2. TLS-Zertifikate

    Symantec verpeilt es schon wieder

  3. Werbung

    Vodafone will mit DVB-T-Abschaltung einschüchtern

  4. Dr Zaber Sentry

    Mini-ITX-Gehäuse mit 7 Litern Volumen und für 30-cm-Karten

  5. Weltraumteleskop

    Erosita soll Hinweise auf Dunkle Energie finden

  6. Anonymität

    Protonmail ist als Hidden-Service verfügbar

  7. Sicherheitsbehörde

    Zitis soll von München aus Whatsapp knacken

  8. OLG München

    Sharehoster Uploaded.net haftet nicht für Nutzerinhalte

  9. Linux

    Kernel-Maintainer brauchen ein Manifest zum Arbeiten

  10. Micro Machines Word Series

    Kleine Autos in Kampfarenen



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Begnadigung: Danke, Chelsea Manning!
Begnadigung
Danke, Chelsea Manning!
  1. Verwirrung Assange will nicht in die USA - oder doch?
  2. Nach Begnadigung Mannings Assange weiter zu Auslieferung in die USA bereit
  3. Whistleblowerin Obama begnadigt Chelsea Manning

Shield TV (2017) im Test: Nvidias sonderbare Neuauflage
Shield TV (2017) im Test
Nvidias sonderbare Neuauflage
  1. Wayland Google erstellt Gamepad-Support für Android in Chrome OS
  2. Android Nougat Nvidia bringt Experience Upgrade 5.0 für Shield TV
  3. Nvidia Das Shield TV wird kleiner und kommt mit mehr Zubehör

Nintendo Switch im Hands on: Die Rückkehr der Fuchtel-Ritter
Nintendo Switch im Hands on
Die Rückkehr der Fuchtel-Ritter
  1. Nintendo Vorerst keine Videostreaming-Apps auf Switch
  2. Arms angespielt Besser boxen ohne echte Arme
  3. Nintendo Switch Eltern bekommen totale Kontrolle per App

  1. Re: !! ACHTUNG !! Reflexartiger Aufschrei erfolgt...

    mrgenie | 18:55

  2. Re: Material

    Crossfire579 | 18:53

  3. Re: Es ist einfach in meinen Augen zu teuer.

    Seasdfgas | 18:50

  4. Jahr bitte in 2017 ändern... ;)

    eddie8 | 18:49

  5. Re: das hat mit Fachkräftemangel

    derbumm | 18:46


  1. 19:03

  2. 18:45

  3. 18:27

  4. 18:12

  5. 17:57

  6. 17:41

  7. 17:24

  8. 17:06


  1. Themen
  2. A
  3. B
  4. C
  5. D
  6. E
  7. F
  8. G
  9. H
  10. I
  11. J
  12. K
  13. L
  14. M
  15. N
  16. O
  17. P
  18. Q
  19. R
  20. S
  21. T
  22. U
  23. V
  24. W
  25. X
  26. Y
  27. Z
  28. #
 
    •  / 
    Zum Artikel