Open On-Chip Debugger:
OpenOCD User’s Guide
for release 0.4.0
21 February 2010
This User’s Guide documents release 0.4.0, dated 21 February 2010, of the Open On-Chip
Debugger (OpenOCD).
• Copyright
c
2008 The OpenOCD Project
• Copyright
c
2007-2008 Spencer Oliver spen@spen-soft.co.uk
• Copyright
c
2008 Oyvind Harboe oyvind.harboe@zylin.com
• Copyright
c
2008 Duane Ellis openocd@duaneellis.com
• Copyright
c
2009-2010 David Brownell
Permission is granted to copy, distribute and/or modify this document under
the terms of the GNU Free Documentation License, Version 1.2 or any later
version published by the Free Software Foundation; with no Invariant Sections,
with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license
is included in the section entitled “GNU Free Documentation License”.
i
Short Contents
About . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1 OpenOCD Developer Resources. . . . . . . . . . . . . . . . . . . . . . . . . . 2
2 JTAG Hardware Dongles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3 About JIM-Tcl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
4 Running . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
5 OpenOCD Project Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
6 Config File Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
7 Daemon Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
8 Interface - Dongle Configuration . . . . . . . . . . . . . . . . . . . . . . . . 31
9 Reset Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
10 TAP Declaration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
11 CPU Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
12 Flash Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
13 NAND Flash Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
14 PLD/FPGA Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
15 General Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
16 Architecture and Core Commands . . . . . . . . . . . . . . . . . . . . . . . 84
17 JTAG Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
18 Boundary Scan Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
19 TFTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
20 GDB and OpenOCD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
21 Tcl Scripting API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
22 FAQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
23 Tcl Crash Course . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
A The GNU Free Documentation License. . . . . . . . . . . . . . . . . . 117
OpenOCD Concept Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Command and Driver Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
ii
Table of Contents
About . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
What is OpenOCD? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
OpenOCD Web Site . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Latest User’s Guide:. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
OpenOCD User’s Forum. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1 OpenOCD Developer Resources . . . . . . . . . . . . . . . 2
1.1 OpenOCD GIT Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Doxygen Developer Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 OpenOCD Developer Mailing List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.4 OpenOCD Bug Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 JTAG Hardware Dongles . . . . . . . . . . . . . . . . . . . . . . 4
2.1 Choosing a Dongle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 Stand alone Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.3 USB FT2232 Based . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.4 USB-JTAG / Altera USB-Blaster compatibles . . . . . . . . . . . . . . . . . . 5
2.5 USB JLINK based . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.6 USB RLINK based . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.7 USB Other. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.8 IBM PC Parallel Printer Port Based . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.9 Other... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3 About JIM-Tcl. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
4 Running . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
4.1 Simple setup, no customization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
4.2 What OpenOCD does as it starts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
5 OpenOCD Project Setup . . . . . . . . . . . . . . . . . . . . . 11
5.1 Hooking up the JTAG Adapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
5.2 Project Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
5.3 Configuration Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
5.4 User Config Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
5.5 Project-Specific Utilities. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5.6 Target Software Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
5.7 Target Hardware Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
iii
6 Config File Guidelines . . . . . . . . . . . . . . . . . . . . . . . . 18
6.1 Interface Config Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
6.2 Board Config Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
6.2.1 Communication Between Config files. . . . . . . . . . . . . . . . . . . . . . 20
6.2.2 Variable Naming Convention . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
6.2.3 The reset-init Event Handler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
6.2.4 JTAG Clock Rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
6.3 Target Config Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
6.3.1 Default Value Boiler Plate Code . . . . . . . . . . . . . . . . . . . . . . . . . . 23
6.3.2 Adding TAPs to the Scan Chain. . . . . . . . . . . . . . . . . . . . . . . . . . 24
6.3.3 Add CPU targets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
6.3.4 Chip Reset Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
6.3.5 ARM Core Specific Hacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
6.3.6 Internal Flash Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
6.4 Translating Configuration Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
7 Daemon Configuration . . . . . . . . . . . . . . . . . . . . . . . . 27
7.1 Configuration Stage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
7.2 Entering the Run Stage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
7.3 TCP/IP Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
7.4 GDB Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
7.5 Event Polling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
8 Interface - Dongle Configuration . . . . . . . . . . . . . 31
8.1 Interface Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
8.2 Interface Drivers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
8.3 JTAG Speed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
9 Reset Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
9.1 Types of Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
9.2 SRST and TRST Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
9.3 Commands for Handling Resets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
9.4 Custom Reset Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
10 TAP Declaration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
10.1 Scan Chains . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
10.2 TAP Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
10.3 TAP Declaration Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
10.4 Other TAP commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
10.5 TAP Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
10.6 Enabling and Disabling TAPs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
10.7 Autoprobing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
- 1
- 2
- 3
- 4
- 5
前往页