JTAG debuggers tend to be large, fast, and expensive, or cheap and slow. The new crop of USB-based JTAG debuggers is cutting the cost while keeping the performance high. I recently had a chance to look at one-the rather tiny Macraigor Systems' usbSprite (Fig. 1).
The usbSprite works with most JTAG-compatible debuggers. It also comes with a number of free software packages such as OCD Commander, a very basic JTAG debugger (Fig. 2). It's designed more as a basic system checkout tool than a full-fledged diagnostic tool. That's a chore for the typical symbolic debugger. OCD Commander can display most system parameters and download applications into memory. A macro capability lets the OCD Commander handle complex programming chores quickly, so it's still a useful tool when most debugging is done through another debug application.
Macraigor Systems provides a number of tools like OCD Command for free. However, the tools are matched to the Macraigor hardware, which is serialized. A small graphical configuration program, the USB Demon Finder, handles up to 16 JTAG devices. A flash memory programmer is available as well. Macraigor also provides the free GNU tool suite for Linux and Windows.
One benefit of using GNU tools is that they are available everywhere. Learn one and you have things pretty much down for any other instance.
As with most JTAG products, the usbSprite is processor-specific. I examined the version for the Arm processor family and decided to test it out with a kit from Logic Product Development. I looked at Logic PD's Sharp Zoom Starter Development Kit, which is based on Sharp's ARM9-based LH7A400 BlueStreak, in my first EiED Online column (see "The Launch Of A New Web-Exclusive Department" at http://www.elecdesign.com/Articles/ArticleID/8270/8270.html).Of course, at that time, I didn't have access to a JTAG debugger. I had employed Cygwin and the GNU tools with the starter kit, but that used a serial interface. Although functional, it lacks many capabilities of a JTAG tool, such as the usbSprite.
To be fair, I decided to download the latest Cygwin compiler and debugger from Macraigor. This has the advantage of working out of the box, so to speak, with the usbSprite. Although a large download, it was worth the effort. It was a two-part installation. I had to first install Cygwin in a new directory, then the Arm compiler and debugger tools from Macraigor. The installation program added a number of useful items, including a simple demo specifically for the Logic PD kit. The Arm package actually has demos for over a dozen chips, including Arm products from Texas Instruments, Atmel, Cirrus, and Oki Semiconductor.
Building the demo was a snap, and it was relatively easy to build that base into a more complex application. I used the gdb debugger, but first I had to start up the ocdremote program. This little application interfaces to the usbSprite via USB and exposes it to a gdb debugger via a TCP/IP port. The application can run in the background and be accessed over the network, assuming the workstation's firewall does not prevent access to the selected port. I did the usual dumb thing and tried to start ocdremote with a -c ARM7 the first time instead of -c ARM9. Hey, I didn't have my Sharp docs handy.
Starting gdb was uneventful. It was simply a matter of selecting remote gdb support and entering the default port number, 8888. Running through this indirect method didn't seem to slow things down. It also has the benefit of turning a USB JTAG device into an Ethernet JTAG device.
Now it is time to move on to Linux and take a crack at getting the Eclipse CDT (C Development Tools) to work with the usbSprite and the Sharp Development Kit. Actually, I'm just going to leave the usbSprite attached to the Windows machine and access it via TCP/IP over an Ethernet link from a Linux machine. There is a Linux version of ocdremote as well.
Of course, once I'm done, I will need to replace the boot loader/debugger that was overwritten when I dropped my test applications onto the LH7A400. The only thing I would like to see added is one or more PDF or HTML files that contain setup and configuration information. There is a nice FAQ section on the Web site, but the FAQs should have been installed along with the rest of the GNU tools.
Even after hunting down a few things online, I managed to get everything up and running in an afternoon. I also need to mention that I had an early version of the usbSprite, so I did not get any documentation or installation CD. So, everything was accessed over the Internet from Macraigor's Web site.
Overall, the usbSprite is a very nice tool. It works well with a laptop. It's so small you can fit it and the cable in your pocket. Although I only tested it with the GNU tools, it will work equally well with most third-party development suites that support JTAG devices directly or suites that support a gdb interface.
Logic Product Development