Well, I think I have found out how to do this. The IAR compiler supports the TI XDS100 driver and using the v2 USB emulator in the TI XDS 100 options allows IAR to connect to the device.
I am still having some problems though. If I create a new basic C project in IAR with an empty main.c then I can debug just fine. But if I use the StarterWare 2.00.00.06 ewarm\am335x\beaglebone\enet_lwip project I get:
Thu Apr 12, 2012 13:33:42: JTAG XDS100 TMS470, device revision: 0x413FC082, big endian: false, cache: false, board revision: 0x00000000, driver revision: 0x05010200
Thu Apr 12, 2012 13:33:42: Initial reset was performed
Thu Apr 12, 2012 13:34:10: 132340 bytes downloaded (4.70 Kbytes/sec)
Thu Apr 12, 2012 13:34:10: Error writing memory:
…
Thu Apr 12, 2012 13:34:10: Error writing memory:
Thu Apr 12, 2012 13:34:10: Loaded debugee: C:\Data\Products\0709 Common Platform S7\Firmware\Beagle 01\Debug\Exe\c.out
Thu Apr 12, 2012 13:34:10: Error reading register:
Thu Apr 12, 2012 13:34:18: Fatal error: (Error -2131 @ 0x400231) Unable to access device register. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board,
and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 5.0.641.0) Session aborted!
Thu Apr 12, 2012 13:34:18: Target reset
Thu Apr 12, 2012 13:34:18: Failed to load debugee: C:\Data\Products\0709 Common Platform S7\Firmware\Beagle 01\Debug\Exe\c.out
The difference would appear to be down to the XCF file provided by the starterware. This is needed as the project is quite big, 400k (ish), and so needs to use the external DRAM. Does anyone have any thoughts on this? StarterWare XCF:
define memory mem with size = 4G;
/* Define internal RAM region */
define region IRAM_region = mem:[from 0x402F0400 size 0x10000];
/* Define internal DRAM region */
define region DRAM_region = mem:[from 0x80000000 size 0x2000000];
/* Define Stack */
define region stack_region = mem:[from 0x87FFFFF8 size 0x08];
define block stack_end with alignment = 8, size =0 { };
place at address mem:0x80000000 { section SYSTEMSTART };
place in DRAM_region { readonly };
place in DRAM_region { readwrite };
place in DRAM_region { zi };
place in stack_region { block stack_end};
Thanks
Chris