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)