Hallo, ich möchte OpenOCD mit einem Controller mit ARM 7 TDMI verbinden. Zuerst habe ich es mit einem Wiggler versucht und autoprobe fand den Controller. Aufgrund der autoprobe Ausgaben habe ich diese Config-Optionen gesetzt: jtag_khz 1000 jtag newtap auto0 tap -expected-id 0x3f0f0f0f -irlen 4 target create pcd.cpu arm7tdmi -variant arm7tdmi -chain-position 0 OpenOCD mit dem Wiggler meldet dann Erfolg: parport port = 0x378 1000 kHz Warn : Specify TAP 'auto0.tap' by name, not number 0 pcd.cpu Info : clock speed 500 kHz Info : JTAG tap: auto0.tap tap/device found: 0x3f0f0f0f (mfg: 0x787, part: 0xf0f0, ver: 0x3) Info : Embedded ICE version 1 Info : pcd.cpu: hardware has 2 breakpoint/watchpoint units Wenn ich dieselbe Konfiguration mit einem FTDI basierten JTAG Adapter (USB Blaster mit Jtagkey Buffer) probiere gibt es Fehler bei der Verbindung: 1000 kHz Warn : Specify TAP 'auto0.tap' by name, not number 0 pcd.cpu Info : max TCK change to: 30000 kHz Info : clock speed 1000 kHz Info : TAP auto0.tap does not have IDCODE Warn : JTAG tap: auto0.tap UNEXPECTED: 0x00000000 (mfg: 0x000, part: 0x0000, ver: 0x0) Error: JTAG tap: auto0.tap expected 1 of 1: 0x3f0f0f0f (mfg: 0x787, part: 0xf0f0, ver: 0x3) Warn : Unexpected idcode after end of chain: 1 0x000001fe ... Warn : Unexpected idcode after end of chain: 577 0x000001fe Error: double-check your JTAG setup (interface, speed, missing TAPs, ...) Error: Trying to use configured scan chain anyway... Error: auto0.tap: IR capture error; saw 0x00 not 0x01 Was kann ich noch einstellen, damit auch der USB Blaster eine Verbindung aufbauen kann? Ich vermute, dass er schneller ist, als der Wiggler, aber selbst eine Reduktion von jtag_khz auf 500 und dann 100 brachte nichts. Viele Grüße Gunnar
Gunnar Henne schrieb: > Info : JTAG tap: auto0.tap tap/device found: 0x3f0f0f0f (mfg: 0x787, > part: 0xf0f0, ver: 0x3) Das sieht schräg aus. Bist du dir sicher, dass da alles funktioniert?
Hallo Jörg, ich bin mir sicher, dass das alles funktioniert. Hochladen des Images ins Ram und ausführen hat funktioniert. Inzwischen sieht meine Config so aus:
1 | # pcd.cfg |
2 | telnet_port 4000 |
3 | gdb_port 3333 |
4 | |
5 | #configure reset options |
6 | jtag_nsrst_delay 50 |
7 | jtag_ntrst_delay 50 |
8 | |
9 | #use combined on interfaces or targets that can't set TRST/SRST separately |
10 | reset_config trst_and_srst srst_pulls_trst trst_push_pull srst_push_pull |
11 | |
12 | adapter_khz 1000 |
13 | jtag newtap auto0 tap -expected-id 0x3f0f0f0f -irlen 4 |
14 | target create pcd.cpu arm7tdmi -variant arm7tdmi -chain-position 0 |
15 | |
16 | arm7_9 fast_memory_access enable |
17 | |
18 | proc start_debug {} { |
19 | halt |
20 | load_image pcd_image.elf |
21 | step 0x01000000 |
22 | } |
Ich habe das Problem, dass ein Aufruf von start_debug() über die Kommandozeile
1 | openocd -f interface/parport.cfg -f pcd.cfg -c start_debug |
immer behauptet, dass es die "halt" funktion nicht gibt. Wenn ich aber stattdessen die Funktion über das telnet Interface auf Port 4000 aufrufe, geht es wunderbar und ich kann einen Debugger anhängen. Kann mir dazu jemand einen Tip geben? Viele Grüße Gunnar
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.