|
Needs Expansion |
|
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
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