Flyswatter2 Beagleboard XM Windows How To

Revision as of 20:53, 11 April 2012 by Wmat (talk | contribs) (Porting TinCanTools wiki content.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

This guide will walk you through connecting the Flyswatter2 and the TI Beagleboard XM to your Windows PC, and installing and running OpenOCD. This guide was tested with Windows XP and Windows 7. Instructions are identical on 32-bit and 64-bit versions of Windows unless otherwise noted.

Connecting the Flyswatter2 and the Beagleboard XM

To hook up the Flyswatter2 and the Beagleboard XM, you will need:

  • 20-pin ARM to 14-pin TI JTAG Adapter Board
  • 14-pin JTAG Ribbon Cable
  • RS-232 Serial Cable with one male, one female head
  • USB Male A/Male B Cable
  • 5V1A Power Cable

Set the EMU pins on the JTAG Adapter Board.

Ti adapter.png

The EMU0 and EMU1 pins should be set to 1. Set both jumpers to the position closest to the 14-pin interface, as in the picture.

Connect the JTAG Adapter Board to the Flyswatter2.

Fs2 ti adapter.png

Connect the 20-pin end of the adapter board to the Flyswatter2's JTAG interface.

Connect the 14-pin Ribbon Cable to the JTAG Adapter Board.

Fs2 ti jtag.png

Your cable most likely has a notch on the head to force it into the correct position. If it doesn't, align Pin 1 on the ribbon cable with the side of the board opposite the EMU pins. (In the picture, Pin 1 is marked by the red stripe on the cable.)

Connect the 10-pin Ribbon Cable to the RS-232 Adapter Board.

Fs2 jtag14serial10.png

Connect the Other End of the Ribbon Cable to the Beagleboard XM.

Fs2 beaglexm jtag.png

Be sure to align the ribbon cable correctly. Pin 1 on the Beagleboard XM is the pin closest to the center of the board.

Plug in the Serial Cable.

Fs2 beaglexm bothcables.png

Connect the Flyswatter2 and the Beagleboard XM with the RS-232 serial cable.

Connect the USB cable to the Flyswatter2.

Fs2 beaglexm usb.png

Find the USB cable that comes with the Flyswatter2. Connect the B end (the square end, not the flat end) to the Flyswatter2.

Connect the Power Cable to the Beagleboard XM.

Fs2 beaglexm power.png

The Beagleboard XM's power adapter is next to the serial port.

Plug the Power Adapter into a Wall Outlet.

The green power LED on the Beagleboard XM should come on and remain on.

Plug the USB Cable into your PC.

The green power LED on the Flyswatter2 should come on and remain on.

Installing OpenOCD

OpenOCD (Open On-Chip Debugger) is open-source software that interfaces with the Flyswatter2. OpenOCD provides debugging and in-system programming for embedded target devices. You will need to compile OpenOCD from source, and patch the source with one of the OpenOCD Patches for Flyswatter 3 support.

Whichever guide you use, be sure to install the patch! All four guides include instructions on downloading and installing the patch.

Windows 7

Use Windows 7 guides if compiling for Windows Vista.

Compiling OpenOCD Win7

Compiling OpenOCD Win7 D2XX

Windows XP

Compiling OpenOCD WinXP

Compiling OpenOCD WinXP D2XX

The first set of instructions uses libFTDI, an open-source driver library for FTDI devices. The second set uses FTD2XX, a closed-source driver library from Future Technology Devices International.

Running OpenOCD

Now you are ready to run OpenOCD. Open a command line window; if you're not sure how to do this, see Running OpenOCD on Windows. Navigate to the folder containing openocd.exe (the openocd-bin folder you created in the compile guide) and type:

cd C:\openocd-bin
openocd -f interface/flyswatter2.cfg -f board/ti_beagleboard_xm.cfg -c init -c "reset init"

For more information, see Running OpenOCD on Windows. When you start OpenOCD, its output should look like this:

Beaglexm ocdstartup win.png


You may see one or more JTAG-DP_STICKY_ERROR immediately on startup. This is caused by a bug in OpenOCD, but don't worry. OpenOCD will still be able to communicate with the board. The errors look like this.

Beaglexm ocderr win.png

The -c init -c "reset init" commands at the end of the OpenOCD startup is a workaround for this error. If you don't include the init and reset init commands, you will still be able to use OpenOCD with the Beagleboard XM. However, if you exit and restart OpenOCD, it will fail to connect unless you unplug the Flyswatter and plug it back in.

Telnet Connection

You cannot enter commands directly to OpenOCD. Open a new command window and type:

telnet localhost 4444

You will should see this prompt:

Telnet win.png

You can give commands to OpenOCD through this prompt. If you don't see the prompt on Windows 7, you may need to enable the Telnet client. See Configuring Windows 7 for OpenOCD.

Common OpenOCD Commands

To see a full list of OpenOCD commands, enter help in the telnet window.


Resets the Beagleboard XM. The output of the Reset command should look like this:

Beaglexm reset win.png


Sends a halt request to the Beagleboard XM. If the Beagleboard XM halts, you will see text output in the telnet window. (If the Beagleboard XM is already halted, you will see no output.)

Beaglexm halt win.png

halt [timeout]

You can also use halt followed by a time in milliseconds. OpenOCD waits for the target to halt the specified amount of time, then gives up if the target has not halted. You can use this to avoid OpenOCD hanging because the Beagleboard XM fails to halt. For example, to send a halt command with a timeout of one second, type:

halt 1000


Enter resume to end a halt. You will not see any text output in the telnet window.


Displays a numbered list of all of the Beagleboard XM's registers.

Beaglexm reg win.png

reg [entry]

Run reg with a register number to display the contents of a register, in hexadecimal. The register number corresponds to the output of the reg command with no arguments, above. You must run the halt command before reading registers.

Beaglexm reg0 win.png

If you run reg while the Beagleboard XM is not halted, you will still see the value stored in the register. However, registers change contents very quickly while the device is running; by the time you see the value, the value actually in the register may be different. If you try to run reg while the device is not halted, you will see this:

Beaglexm reg0 nothalted win.png

reg [entry] [value]

Sets the value of a register. The register number corresponds to the output of the reg command with no arguments, above. Make sure the Beagleboard XM is halted (with the halt command) before you change the value of a register!

You can enter registry values in either decimal, by typing a number by itself, or in hexadecimal, by prefacing the value with 0x.

Beaglexm regset win.png

GDB Debugger

GDB, the GNU Project Debugger is a debugging tool provided with the GNU Compiler Collection (GCC). GDB allows you to stop and start a running program, examine its functioning, and make changes. To install and use GDB with OpenOCD, follow the instructions on the Windows GDB Debugger page below.

Windows GDB Debugger

The GDB debugger page will walk you through installing GDB for use with OpenOCD, and loading and testing a simple program.