<<Include(Tag/NeedsExpansion)>> ||<tablestyle="float:right; font-size: 0.9em; width:40%; background:#F1F1ED; margin: 0 0 1em 1em;" style="padding:0.5em;"><<BR>><<TableOfContents(2)>>|| = OpenOCD = = Introduction = OpenOCD provides [[http://openocd.berlios.de/web/|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 ----