Ich habe mir ein Starterkit mit einem Olimex LPC-P2103 Board und einem
OpenOCD USB Adapter gekauft. Dieses hier:
http://shop.embedded-projects.net/product_info.php/info/p76_ARM7-Starterkit.html
Ich habe die mitgelieferten Stecker angelötet und unter einem Ubuntu
9.10 mir die GNU Toolchain kompiliert und OpenOCD installiert. Die
openocd.cfg habe ich mir aus
1 | #
|
2 | # Hubert Hoegl's USB to JTAG
|
3 | #
|
4 | # http://www.hs-augsburg.de/~hhoegl/proj/usbjtag/usbjtag.html
|
5 | #
|
6 |
|
7 | interface ft2232
|
8 | ft2232_vid_pid 0x0403 0x6010
|
9 | ft2232_device_desc "Dual RS232 A"
|
10 | ft2232_layout "oocdlink"
|
11 | ft2232_latency 2
|
12 | # 6/(1+n) Mhz TCLK
|
13 | jtag_speed 1
|
und
1 | # NXP LPC2103 ARM7TDMI-S with 32kB Flash and 8kB SRAM, clocked with 12MHz crystal
|
2 |
|
3 | if { [info exists CHIPNAME] } {
|
4 | set _CHIPNAME $CHIPNAME
|
5 | } else {
|
6 | set _CHIPNAME lpc2103
|
7 | }
|
8 |
|
9 | if { [info exists ENDIAN] } {
|
10 | set _ENDIAN $ENDIAN
|
11 | } else {
|
12 | set _ENDIAN little
|
13 | }
|
14 |
|
15 | if { [info exists CPUTAPID ] } {
|
16 | set _CPUTAPID $CPUTAPID
|
17 | } else {
|
18 | set _CPUTAPID 0x4f1f0f0f
|
19 | }
|
20 |
|
21 | # LPC2000 -> SRST causes TRST
|
22 | reset_config trst_and_srst srst_pulls_trst
|
23 |
|
24 | # reset delays
|
25 | jtag_nsrst_delay 100
|
26 | jtag_ntrst_delay 100
|
27 |
|
28 | jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_CPUTAPID
|
29 |
|
30 | set _TARGETNAME [format "%s.cpu" $_CHIPNAME]
|
31 |
|
32 | target create $_TARGETNAME arm7tdmi -endian $_ENDIAN -chain-position $_TARGETNAME -variant arm7tdmi-s_r4
|
33 |
|
34 | # 8kB of internal SRAM
|
35 | $_TARGETNAME configure -work-area-virt 0 -work-area-phys 0x40000000 -work-area-size 0x2000 -work-area-backup 0
|
36 |
|
37 | # 32kB of internal Flash, core clocked with 12MHz crystal
|
38 | # flash bank lpc2000 <base> <size> 0 0 <target#> <variant> <clock> [calc_checksum]
|
39 | flash bank lpc2000 0x0 0x8000 0 0 0 lpc2000_v2 12000 calc_checksum
|
zusammen gebaut, welche in /usr/share/openocd/scripts/ als des Ubuntu
Pakets rumliegen. Wenn ich dieses Configfile verwende, dann kommt dieser
Fehler:
1 | Open On-Chip Debugger 0.2.0-in-development (2009-06-30-01:11) svn:r2403
|
2 |
|
3 |
|
4 | BUGS? Read /usr/share/doc/openocd/BUGS
|
5 |
|
6 |
|
7 | $URL: http://svn.berlios.de/svnroot/repos/openocd/trunk/src/openocd.c $
|
8 | jtag_speed: 1
|
9 | jtag_nsrst_delay: 100
|
10 | jtag_ntrst_delay: 100
|
11 | Error: JTAG communication failure: check connection, JTAG interface, target power etc.
|
12 | Error: trying to validate configured JTAG chain anyway...
|
13 | Error: Could not validate JTAG scan chain, IR mismatch, scan returned 0x3F. tap=lpc2103.cpu pos=0 expected 0x1 got 3
|
14 | Warn : Could not validate JTAG chain, continuing anyway...
|
15 | Error: unknown EmbeddedICE version (comms ctrl: 0xffffffff)
|
16 | Warn : DBGACK set while target was in unknown state. Reset or initialize target.
|
17 | target state: halted
|
18 | target halted in Thumb state due to watchpoint, current mode: System
|
19 | cpsr: 0xffffffff pc: 0xffffffef
|
Wie es mir scheint, ist die Config für das Interface richtig und die
Stecker habe ich auch nicht kaputt gelötet, aber die Target
Konfiguration scheint noch nicht zu stimmen. Was ich in Google oder hier
gefunden habe, waren entweder veraltete Skripte oder nicht für mein
Board. Hat jemand eine funktionierende Konfiguration für das Olimex
LPC-P2103?