Hi, ich wollte mal auf das neueste OpenOCD updaten. Leider musste ich feststellen, dass die Konfigurationsbefehle größten Teils geändert wurden. Nach ein wenig bastelei glaube ich nun eine Konfiguration erstellt zu haben, die das selbe bezweckt wie meine alte. Dennoch kann ich kein Programm in meinen ARM7 (STR710) laden. Folgende Ausgabe bekomme ich:
1 | Open On-Chip Debugger 1.0 (2009-04-10-13:28) svn:1454M |
2 | BUGS? Read http://svn.berlios.de/svnroot/repos/openocd/trunk/BUGS |
3 | |
4 | 5 kHz |
5 | Info : JTAG tap: str710.cpu tap/device found: 0x3f0f0f0f (Manufacturer: |
6 | 0x787, Part: 0xf0f0, Version: 0x3) |
7 | Info : JTAG Tap/device matched |
8 | Warn : DBGACK set while target was in unknown state. Reset or initialize |
9 | target. |
10 | |
11 | target state: halted |
12 | target halted in ARM state due to breakpoint, current mode: Undefined |
13 | cpsr: 0xb00000db pc: 0x000ab5a8 |
14 | Info : accepting 'gdb' connection from 0 |
15 | Warn : acknowledgment received, but no packet pending |
16 | Info : JTAG tap: str710.cpu tap/device found: 0x3f0f0f0f (Manufacturer: |
17 | 0x787, Part: 0xf0f0, Version: 0x3) |
18 | Info : JTAG Tap/device matched |
19 | Warn : srst pulls trst - can not reset into halted mode. Issuing halt after |
20 | reset. |
21 | target state: halted |
22 | target halted in ARM state due to debug-request, current mode: Undefined |
23 | cpsr: 0xb00000db pc: 0x000b2814 |
24 | target state: halted |
25 | target halted in ARM state due to debug-request, current mode: Undefined |
26 | cpsr: 0xb00000db pc: 0x000b2814 |
27 | requesting target halt and executing a soft reset |
28 | target state: halted |
29 | target halted in ARM state due to debug-request, current mode: Supervisor |
30 | cpsr: 0xb00000d3 pc: 0x00000000 |
31 | Warn : negative reply, retrying |
32 | Warn : negative reply, retrying |
33 | Warn : acknowledgment received, but no packet pending |
34 | Warn : negative acknowledgment, but no packet pending |
35 | Warn : negative acknowledgment, but no packet pending |
36 | Warn : acknowledgment received, but no packet pending |
37 | Warn : negative reply, retrying |
38 | Warn : negative reply, retrying |
39 | Warn : acknowledgment received, but no packet pending |
40 | Warn : negative acknowledgment, but no packet pending |
41 | Warn : negative acknowledgment, but no packet pending |
42 | Warn : acknowledgment received, but no packet pending |
43 | Warn : negative reply, retrying |
44 | Warn : negative reply, retrying |
45 | Warn : acknowledgment received, but no packet pending |
46 | Warn : negative acknowledgment, but no packet pending |
47 | Warn : negative acknowledgment, but no packet pending |
48 | Warn : acknowledgment received, but no packet pending |
49 | Warn : negative reply, retrying |
Die Fehler beginnen sobald ich das "load" Kommando in gdb starte. Da die Hardware 100%-tig funktioniert, kann es eigentlich nur an der Konfiguration liegen oder an einem Fehler im OpenOCD. Hier mal mein Konfigurationsskript:
1 | #daemon configuration |
2 | telnet_port 4444 |
3 | gdb_port 3333 |
4 | tcl_port 6666 |
5 | |
6 | # tell gdb the flash mem-map |
7 | gdb_memory_map enable |
8 | gdb_flash_program enable |
9 | |
10 | #interface |
11 | interface ft2232 |
12 | ft2232_device_desc "OOCDLink A" |
13 | ft2232_layout oocdlink |
14 | ft2232_vid_pid 0x0403 0xbaf8 |
15 | jtag_khz 5 |
16 | |
17 | jtag_nsrst_delay 500 |
18 | jtag_ntrst_delay 500 |
19 | |
20 | #target configuration |
21 | #start slow, speed up after reset |
22 | #jtag_khz 10 |
23 | |
24 | if { [info exists CHIPNAME] } { |
25 | set _CHIPNAME $CHIPNAME |
26 | } else { |
27 | set _CHIPNAME str710 |
28 | } |
29 | |
30 | if { [info exists ENDIAN] } { |
31 | set _ENDIAN $ENDIAN |
32 | } else { |
33 | set _ENDIAN little |
34 | } |
35 | |
36 | if { [info exists CPUTAPID] } { |
37 | set _CPUTAPID $CPUTAPID |
38 | } else { |
39 | set _CPUTAPID 0x3f0f0f0f |
40 | } |
41 | |
42 | #use combined on interfaces or targets that can't set TRST/SRST separately |
43 | reset_config trst_and_srst srst_pulls_trst |
44 | |
45 | #jtag scan chain |
46 | |
47 | jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0x0f -expected-id |
48 | $_CPUTAPID |
49 | |
50 | set _TARGETNAME [format "%s.cpu" $_CHIPNAME] |
51 | target create $_TARGETNAME arm7tdmi -endian $_ENDIAN -chain-position |
52 | $_TARGETNAME -variant arm7tdmi |
53 | #$_TARGETNAME configure -event reset-start { jtag_khz 10 } |
54 | #$_TARGETNAME configure -event reset-init { jtag_khz 6000 } |
55 | $_TARGETNAME configure -event gdb-flash-erase-start { |
56 | flash protect 0 0 7 off |
57 | flash protect 1 0 1 off |
58 | } |
59 | |
60 | $_TARGETNAME configure -work-area-virt 0 -work-area-phys 0x2000C000 |
61 | -work-area-size 0x4000 -work-area-backup 0 |
62 | |
63 | #flash bank str7x <base> <size> 0 0 <target#> <variant> |
64 | flash bank str7x 0x40000000 0x00040000 0 0 0 STR71x |
65 | flash bank str7x 0x400C0000 0x00004000 0 0 0 STR71x |
66 | |
67 | # OpenOCD kann loslegen |
68 | init |
Kann da jemand den Fehler entdecken, oder sonstige Tips abgeben?