Diff for "OpenOCD"


Differences between revisions 5 and 18 (spanning 13 versions)
Revision 5 as of 2009-07-26 07:06:32
Size: 2276
Editor: a91-153-222-91
Comment:
Revision 18 as of 2009-09-27 00:13:46
Size: 5253
Editor: 121
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
Parent: [[Software]] <<Include(Tag/NeedsExpansion)>>
Line 6: Line 7:
''Please note that this page is not yet completed!''
Line 10: Line 10:
OpenOCD information can be found here:

Website: http://openocd.berlios.de/web/

Similar information: http://danielromaniuk.com/?q=node/19
OpenOCD provides [[http://openocd.berlios.de/web/|Free and Open On-Chip Debugging, In-System Programming and Boundary-Scan Testing]]
Line 21: Line 16:
= Using OpenOCD with Olimex ARM-USB-OCD and LPC-H2103 = = Usage examples =
Line 23: Line 18:
== OpenOCD Setup == == Using OpenOCD with Olimex ARM-USB-OCD and LPC-H2103 ==

=== OpenOCD Setup ===
Line 33: Line 30:
Then connect ARM-USB-OCD to the USB port. Check ""dmesg"" which should give the following output: Then connect ARM-USB-OCD to the USB port. Check ""dmesg"" which should give approximately the following output:
Line 36: Line 33:
TODO: Add correct dmesg output here... [ 347.868034] usb 2-2: new full speed USB device using uhci_hcd and address 3
[ 348.172550] usb 2-2: configuration #1 chosen from 1 choice
[ 348.360463] usbcore: registered new interface driver usbserial
[ 348.360496] USB Serial support registered for generic
[ 348.360556] usbcore: registered new interface driver usbserial_generic
[ 348.360561] usbserial: USB Serial Driver core
[ 348.525815] USB Serial support registered for FTDI USB Serial Device
[ 348.526020] usb 2-2: Ignoring serial port reserved for JTAG
[ 348.526109] ftdi_sio 2-2:1.1: FTDI USB Serial Device converter detected
[ 348.526155] usb 2-2: Detected FT2232C
[ 348.526250] usb 2-2: FTDI USB Serial Device converter now attached to ttyUSB0
[ 348.526277] usbcore: registered new interface driver ftdi_sio
[ 348.526282] ftdi_sio: v1.4.3:USB FTDI Serial Converters Driver
Line 42: Line 51:
Power on LPC-H2103 board by giving 5 volts between ''Vin'' and ''gnd'' pins. Refer to board schematics for correct pins ( http://www.olimex.com/dev/pdf/lpc-h2103-pins.pdf ). The board should now have power led (red) on and another led (green) flashing. Power on LPC-H2103 board by giving 5 volts between ''Vin'' and ''gnd'' pins. Refer to board schematics for correct pins ( http://www.olimex.com/dev/pdf/lpc-h2103-pins.pdf ). The board should now have power led (red) on and the other led (green) blinking.
Line 44: Line 53:
Create a file named ''openocd.cfg'' with following contents: Next you need to create a configuration file. More information here: http://openfacts.berlios.de/index-en.phtml?title=OpenOCD_configuration

The file can be named for example ''openocd.cfg'', and the contents of that file:
Line 47: Line 58:
TODO: add correct configuration file here. source [find interface/olimex-arm-usb-ocd.cfg]
source [find target/sam7x256.cfg]
Line 49: Line 61:

This configuration should automatically find the correct default configurations for the board and for the dongle.
Line 66: Line 80:
== ARM development toolchain ==
Line 68: Line 81:
''TODO: how to install ARM development toolchain''
Line 70: Line 82:
== Blinking led example == === ARM development toolchain ===

As there currently is no package for gnuarm toolchain, probably the easiest way to install the toolchain is first download the binaries from GNU ARM site:

http://www.gnuarm.com/files.html

I chose GNU/Linux (x86) package called "binutils-2.15, gcc-3.4.3-c-c++-java, newlib-1.12.0, insight-6.1, TAR BZ2" [56.0MB]

Save this file to some directory, e.g. /home/username/bin, and extract it there by right-clicking the package and selecting "Extract here". This results to a directory /home/username/bin/gnuarm-3.4.3.

You may want to make a softlink to this directory:
{{{
ln -s /home/username/bin/gnuarm-3.4.3 /home/username/bin/arm
}}}

There is now a directory /home/username/bin/arm/bin which includes all gnu arm tools. This directory can be added to your path for easier access by adding the following to the end of /etc/profile:

{{{
# set PATH so it includes ARM cross-compiling tools
if [ -d "/home/username/bin/arm/bin" ] ; then
    PATH="/home/username/bin/arm/bin:$PATH"
fi
}}}

You may need to activate the change with
{{{
source /etc/profile
}}}
until the changes are made active.

Finally, try out the toolchain by issuing a command:
{{{
user@machine:~$ arm-elf-gcc --version
arm-elf-gcc (GCC) 3.4.3
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
}}}



In case you want to compile the toolchain from sources, have a look at these sites:

http://blog.nutaksas.com/2009/05/installing-gnuarm-arm-toolchain-on.html

http://www.alphapogo.de/



=== Blinking led example ===
Line 81: Line 142:
 Help for ''openocd'' is available from: http://openocd.berlios.de
Most of the instructions in this page are adopted from
http://danielromaniuk.com/?q=node/19

OpenOCD website: http://openocd.berlios.de
Line 85: Line 151:
Good stuff can be found from SparkFun Electronics forum: http://forum.sparkfun.com/ SparkFun Electronics forum: http://forum.sparkfun.com/


Usage info: http://openfacts.berlios.de/index-en.phtml?title=Open%20On-Chip%20Debugger

Good howto: http://www.sparkfun.com/tutorial/ARM/ARM_Cross_Development_with_Eclipse.pdf

Tag/tag.png

Needs Expansion
This article is incomplete, and needs to be expanded. More info...

OpenOCD

Introduction

OpenOCD provides Free and Open On-Chip Debugging, In-System Programming and Boundary-Scan Testing

Installation Instructions

Look for the package named openocd in the Synaptic Package Manager and install it.

Usage examples

Using OpenOCD with Olimex ARM-USB-OCD and LPC-H2103

OpenOCD Setup

After installing OpenOCD package, you need to set permissions right. Create a file ""/etc/udev/rules.d/45-ft2232.rules"" with following contents:

BUS!="usb", ACTION!="add", SUBSYSTEM!=="usb_device", GOTO="kcontrol_rules_end"

SYSFS{idProduct}=="0003", SYSFS{idVendor}=="15ba", MODE="664", GROUP="plugdev"

LABEL="kcontrol_rules_end" 

Then connect ARM-USB-OCD to the USB port. Check ""dmesg"" which should give approximately the following output:

[  347.868034] usb 2-2: new full speed USB device using uhci_hcd and address 3
[  348.172550] usb 2-2: configuration #1 chosen from 1 choice
[  348.360463] usbcore: registered new interface driver usbserial
[  348.360496] USB Serial support registered for generic
[  348.360556] usbcore: registered new interface driver usbserial_generic
[  348.360561] usbserial: USB Serial Driver core
[  348.525815] USB Serial support registered for FTDI USB Serial Device
[  348.526020] usb 2-2: Ignoring serial port reserved for JTAG
[  348.526109] ftdi_sio 2-2:1.1: FTDI USB Serial Device converter detected
[  348.526155] usb 2-2: Detected FT2232C
[  348.526250] usb 2-2: FTDI USB Serial Device converter now attached to ttyUSB0
[  348.526277] usbcore: registered new interface driver ftdi_sio
[  348.526282] ftdi_sio: v1.4.3:USB FTDI Serial Converters Driver

Connect ARM-USB-OCD dongle to LPC-H2103 prototype board via JTAG cable.

Power on LPC-H2103 board by giving 5 volts between Vin and gnd pins. Refer to board schematics for correct pins ( http://www.olimex.com/dev/pdf/lpc-h2103-pins.pdf ). The board should now have power led (red) on and the other led (green) blinking.

Next you need to create a configuration file. More information here: http://openfacts.berlios.de/index-en.phtml?title=OpenOCD_configuration

The file can be named for example openocd.cfg, and the contents of that file:

source [find interface/olimex-arm-usb-ocd.cfg]
source [find target/sam7x256.cfg]

This configuration should automatically find the correct default configurations for the board and for the dongle.

Start OpenOCD daemon with the following command:

openocd -f openocd.cfg

TODO: Add output here

Test the setup by connecting to openocd daemon with telnet:

telnet localhost 4444

TODO: add some more stuff here

ARM development toolchain

As there currently is no package for gnuarm toolchain, probably the easiest way to install the toolchain is first download the binaries from GNU ARM site:

http://www.gnuarm.com/files.html

I chose GNU/Linux (x86) package called "binutils-2.15, gcc-3.4.3-c-c++-java, newlib-1.12.0, insight-6.1, TAR BZ2" [56.0MB]

Save this file to some directory, e.g. /home/username/bin, and extract it there by right-clicking the package and selecting "Extract here". This results to a directory /home/username/bin/gnuarm-3.4.3.

You may want to make a softlink to this directory:

ln -s /home/username/bin/gnuarm-3.4.3 /home/username/bin/arm

There is now a directory /home/username/bin/arm/bin which includes all gnu arm tools. This directory can be added to your path for easier access by adding the following to the end of /etc/profile:

# set PATH so it includes ARM cross-compiling tools
if [ -d "/home/username/bin/arm/bin" ] ; then
    PATH="/home/username/bin/arm/bin:$PATH"
fi

You may need to activate the change with

source /etc/profile

until the changes are made active.

Finally, try out the toolchain by issuing a command:

user@machine:~$ arm-elf-gcc --version
arm-elf-gcc (GCC) 3.4.3
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

In case you want to compile the toolchain from sources, have a look at these sites:

http://blog.nutaksas.com/2009/05/installing-gnuarm-arm-toolchain-on.html

http://www.alphapogo.de/

Blinking led example

Todo: Blinking led code

Todo: Compilation

TODO: upload with openocd

TODO: Running

Further Help and Documentation

Most of the instructions in this page are adopted from http://danielromaniuk.com/?q=node/19

OpenOCD website: http://openocd.berlios.de

Further Reading

SparkFun Electronics forum: http://forum.sparkfun.com/

Usage info: http://openfacts.berlios.de/index-en.phtml?title=Open%20On-Chip%20Debugger

Good howto: http://www.sparkfun.com/tutorial/ARM/ARM_Cross_Development_with_Eclipse.pdf


OpenOCD (last edited 2009-09-27 00:13:46 by 121)