Tools and Software used in HRI project


JTAG

Adapter

JTAG adapter build by schematics originated by JTAG-ARM9 project and had to be pin-compatible Wiggler device from Macraigor Systems LLS .
Note: for some inexplainable reason, DLink DI604 router don't work properly when JTAG implements nTRST connection. If you face such problem - simply disconnect this pin.

JTAG software

Original Wiggler software

Using benefits of compatibility with a Wiggler, I used following free software from Macraigor Systems:

Open Source JTAG software

In addition, I used a very popular armtool from open source arm-boot project. To accommodate Wiggler compatible adapter, following definitions had to be made in jtag_io.c file:

#define MASK_TMS_BIT   0x02 //2 //0x04
#define MASK_TCK_BIT   0x04 //1 //0x02
#define MASK_TDI_BIT   0x08 //4 //0x01
#define MASK_RST_BIT   0x01 //8
#define MASK_TDO_BIT   0x80     //0x10

/* Polarity of signals */
#define INVERT_TMS 0            // 0
#define INVERT_TCK 0            // 0
#define INVERT_TDI 0            // 0
#define INVERT_RST 0
#define INVERT_TDO 1            // 1
In general, following definitions could be used to use Wiggler adapter with other open source JTAG software.

/*
 * data D[7:0] (pins 9:2)
 */
#define TDI     3
#define TCK     2
#define TMS     1
#define TRST    0

/*
 * 7 - BUSY (pin 11)
 * 6 - ACK (pin 10)
 * 5 - PE (pin 12)
 * 4 - SEL (pin 13)
 * 3 - ERROR (pin 15)
 */
#define TDO     7 //(inverted)

RS232 adapter


Disassemblers

Dissassembler is a must to have tool when you reverse engineering original firware or flash memeory image.

Other software - compilers and so on

ARM Toochain for CYGWIN

Precompiled GNU toolkit for ARM for CYGWIN environment could be downloaded from OpenWinCE project (see http://sourceforge.net/projects/openwince/ ).
Package arm-elf-3.0.4-2.cygwin.tar.bz2 include GCC with following parameters :


$ /usr/local/tools-3.0.4-2/bin/arm-elf-gcc.exe -v
Reading specs from /usr/local/tools-3.0.4-2/bin/../lib/gcc-lib/arm-elf/3.0.4/specs
Configured with: ../gcc-3.0.4/configure --target=arm-elf
--prefix=/devel/tools-3.0.4-2 --with-gnu-as --with-gnu-ld --enable-languages=c,c++
Thread model: single
gcc version 3.0.4

$ /usr/local/tools-3.0.4-2/bin/arm-elf-objdump.exe -i
BFD header file version 2.13
elf32-littlearm
 (header little endian, data little endian)
  arm
elf32-bigarm
 (header big endian, data big endian)
  arm
elf32-little
 (header little endian, data little endian)
  arm
elf32-big
 (header big endian, data big endian)
  arm
srec
 (header endianness unknown, data endianness unknown)
  arm
symbolsrec
 (header endianness unknown, data endianness unknown)
  arm
tekhex
 (header endianness unknown, data endianness unknown)
  arm
binary
 (header endianness unknown, data endianness unknown)
  arm
ihex
 (header endianness unknown, data endianness unknown)
  arm

               elf32-littlearm elf32-bigarm elf32-little elf32-big srec
           arm elf32-littlearm elf32-bigarm elf32-little elf32-big srec

               symbolsrec tekhex binary ihex
           arm symbolsrec tekhex binary ihex

Soft Osciloscope

Oscilloscope for Windows is a Windows application that converts your PC into a powerful dual-trace oscilloscope. Oscilloscope uses your PC's sound card as an Analog-to-Digital Converter (ADC) to digitize any input waveform (speech, music, electric signal, etc.) and then presents it on the monitor in real time, allowing the user to control the display in the same way as on a conventional "standalone" scope, for example change gain, timebase or plot Lissajous patterns.

Links


Stas Khirman (staskh@attbi.com)
Last Update: 28/Feb/2003