Size: 2477
Comment:
|
← Revision 18 as of 2009-09-27 00:13:46 ⇥
Size: 5253
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 in currently under construction. I don't have yet my setup (Olimex ARM-USB-OCD + LPC-H2103 prototype card) in working condition. I write stuff here when I progress. If you are also working with OpenOCD in Ubuntu, please feel free to add your contribution here.'' | |
Line 10: | Line 10: |
OpenOCD information can be found here: Website: http://openocd.berlios.de/web/ |
OpenOCD provides [[http://openocd.berlios.de/web/|Free and Open On-Chip Debugging, In-System Programming and Boundary-Scan Testing]] |
Line 19: | Line 16: |
= Using OpenOCD with Olimex ARM-USB-OCD and LPC-H2103 = | = Usage examples = |
Line 21: | Line 18: |
== OpenOCD Setup == | == Using OpenOCD with Olimex ARM-USB-OCD and LPC-H2103 == === OpenOCD Setup === |
Line 31: | 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 34: | 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 40: | Line 51: |
Power on LPC-H2103 board by attaching 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 42: | 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 45: | Line 58: |
TODO: add correct configuration file here. | source [find interface/olimex-arm-usb-ocd.cfg] source [find target/sam7x256.cfg] |
Line 47: | Line 61: |
This configuration should automatically find the correct default configurations for the board and for the dongle. |
|
Line 64: | Line 80: |
== ARM development toolchain == | |
Line 66: | Line 81: |
''TODO: how to install ARM development toolchain'' | |
Line 68: | 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 79: | 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 83: | 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 |
Line 86: | Line 161: |
Category: Embedded |
|
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