EmbeddedRelated.com
Forums
Memfault Beyond the Launch

Ethernet JTAG

Started by jsm09a July 30, 2006
I am in the market for a reliable JTAG unit, preferrably with ethernet,
capable of thorough debugging on LPC2103 and PXA270.

Anyone have an opinion on the following possibilities:
- Embest UNetICE
- Ronetix PEEDI
- ARIUM LC-500
- Abatron BDI1000/BDI2000

Thanks, Scott.

An Engineer's Guide to the LPC2100 Series

jsm09a wrote:

> I am in the market for a reliable JTAG unit, preferrably with ethernet,
> capable of thorough debugging on LPC2103 and PXA270.
>
> Anyone have an opinion on the following possibilities:
> - Embest UNetICE
> - Ronetix PEEDI
> - ARIUM LC-500
> - Abatron BDI1000/BDI2000
>
I can highly recommend the Abatron BDI2000, it is a great tool! I
bought mine almost a year ago and have no regrets. It is "pricey", but,
I feel that you do get what you pay for..

I've used it on a board with two ARM cores: LPC2106 and LPC2138. I
daisy chained the TDI + TDO lines, run the others in parallel and can
launch two instances of Insight to simultaneously debug both cores.

Recently, I had a need to describe a single LCP2136 core running:

1. a Bootloader + Application
2. Application code only (no Bootloader).

At first, I would have differing config files for each situation that I
wanted to debug / program the Flash for. Then, I realized that I could
describe these configurations as if they were multiple cores, but the
SCANPRED was 0 (now other cores in the chain). The result has been I
now have Bootloader as core #1 (port 2001), Application as core #0 (port
2000) and when I only have the Application in Flash as core #2 (port 2002).

Now, I can simply switch to the core region description I want with a
simple command, erase and program that area. I can also run seperate
instances of Insight and debug the program(s) from RESET, through the
Bootloader and into the Application.

This is what my BDI2000 config for that looks like:

================= MM-2136.cfg ======================*;
; this is MM-2136.cfg
;
; #0 = app HIGH, #1 = resident, #2 - app ONLY
;
[INIT]
#0 WREG CPSR 0x000000D3 ;select supervisor mode
#0 WGPR 15 0x00018000 ; set PC high.
#0 WM32 0xE01FC040 0x00000001 ;MEMMAP: User flash mode
#0 WM32 0xE01FC080 0x00000000 ;PLLCON:
#0 WM32 0xE01FC084 0x00000000 ;PLLCFG:
#0 WM32 0xE01FC08C 0x000000AA ;PLLFEED:
#0 WM32 0xE01FC08C 0x00000055 ;PLLFEED:
#0 DELAY 100

#1 WREG CPSR 0x000000D3 ;select supervisor mode
#1 WGPR 15 0x00000000 ; set PC low.
#1 WM32 0xE01FC040 0x00000001 ;MEMMAP: User flash mode
#1 WM32 0xE01FC080 0x00000000 ;PLLCON:
#1 WM32 0xE01FC084 0x00000000 ;PLLCFG:
#1 WM32 0xE01FC08C 0x000000AA ;PLLFEED:
#1 WM32 0xE01FC08C 0x00000055 ;PLLFEED:
#1 DELAY 100

#2 WREG CPSR 0x000000D3 ;select supervisor mode
#2 WGPR 15 0x00000000 ; set PC low.
#2 WM32 0xE01FC040 0x00000001 ;MEMMAP: User flash mode
#2 WM32 0xE01FC080 0x00000000 ;PLLCON:
#2 WM32 0xE01FC084 0x00000000 ;PLLCFG:
#2 WM32 0xE01FC08C 0x000000AA ;PLLFEED:
#2 WM32 0xE01FC08C 0x00000055 ;PLLFEED:
#2 DELAY 100

[HOST]
IP 192.168.200.1
FORMAT ELF
LOAD MANUAL
DUMP bin/dump.bin
DEBUGPORT 2000
#0 PROMPT MM(0)-HIGH>
#1 PROMPT MM(1)-LOADER>
#2 PROMPT MM(2)-ONLY>

[TARGET]
CLOCK 4 ;JTAG clock 1MHz ( < 1/6 of CPU clock )
WAKEUP 100

#0 CPUTYPE ARM7TDMI
#0 RESET HARD 500 ;apply 500 ms RESET
#0 STARTUP RESET ;let monitor run for 500 ms
#0 ENDIAN LITTLE ;memory model (LITTLE | BIG)
#0 BREAKMODE HARD ;only two hardware breakpoints available.

#1 CPUTYPE ARM7TDMI
#1 RESET HARD 500 ;apply 500 ms RESET
#1 STARTUP RESET ;let monitor run for 500 ms
#1 ENDIAN LITTLE ;memory model (LITTLE | BIG)
#1 BREAKMODE HARD ;only two hardware breakpoints available.

#2 CPUTYPE ARM7TDMI
#2 RESET HARD 500 ;apply 500 ms RESET
#2 STARTUP RESET ;let monitor run for 500 ms
#2 ENDIAN LITTLE ;memory model (LITTLE | BIG)
#2 BREAKMODE HARD ;only two hardware breakpoints available.

[FLASH]
#0 CHIPTYPE LPC2000 14745 ;select LPC2100 flash, fsys = 12.000 MHz
#0 CHIPSIZE 0x40000 ;256k internal flash
#0 WORKSPACE 0x40001000 ;internal SRAM for buffer, code and stack

#1 CHIPTYPE LPC2000 14745 ;select LPC2100 flash, fsys = 12.000 MHz
#1 CHIPSIZE 0x40000 ;256k internal flash
#1 WORKSPACE 0x40001000 ;internal SRAM for buffer, code and stack

#2 CHIPTYPE LPC2000 14745 ;select LPC2100 flash, fsys = 12.000 MHz
#2 CHIPSIZE 0x40000 ;256k internal flash
#2 WORKSPACE 0x40001000 ;internal SRAM for buffer, code and stack

#0 FILE bin/micromux.bin
#0 FORMAT BIN 0x18000
#0 ERASE 0x0007C00 BLANK ;erase sectors 10..14 of LPC2136

#1 FILE bin/micromux-resident.bin
#1 FORMAT BIN 0
#1 ERASE 0x00001FF BLANK ;erase sectors 0..9 of LPC2136

#2 FILE bin/micromux.bin
#2 FORMAT BIN 0
#2 ERASE 0x0007FFF BLANK ;erase sectors 0..14 of LPC2136

[REGS]
FILE reg2100.def
*=================== snip =========================BTW, I develop using: bintools-2.16.1, gcc-4.0.2, insight-6.4 and
newlib-1.13, on a linux host.
TomW

--
Tom Walsh - WN3L - Embedded Systems Consultant
http://openhardware.net, http://cyberiansoftware.com
"Windows? No thanks, I have work to do..."
----------------
I have both Abatron BDI2000 and Ronetix PEEDI. Since I purchased the
PEEDI I don't use the BDI...
PEEDI is much faster, it has all the features that BDI has and many
other features.
Tom/Peter,

-Very- helpful - thanks for taking the time to respond.

Best, Scott.

Memfault Beyond the Launch