Compatible Hardware Debug Products
The eCosPro Developer's Kit can support both software and hardware based debugging of eCos applications. Software based debugging uses standard PC interfaces to communicate with a debug agent on the target board. This agent carries out debug operations on behalf of the debugger running on the host. Hardware based debugging by contrast uses a specialist hardware debug interface, typically JTAG or BDM, to cause the CPU on the target board to directly handle the host based debugger's requests.
The eCosPro Developer's Kit includes software based debugging as a standard feature. This works with all supported hosts, on virtually all supported boards, using standard serial or Ethernet interfaces to communicate with either the RedBoot bootloader, or a small debug stub, on the target. Software based debug is ubiquitous, low cost, fast (when Ethernet is used) and flexible. By contrast hardware based debugging requires additional debug hardware and software configuration for the CPU and board combination to be debugged. It also does not currently support thread aware debugging via eCosPro's the gdb or Eclipse debuggers. In many situations it does however provide significant advantages over software debugging: boards can be brought up from their bare state, you can set breakpoints and single step code in ROM/Flash memory, and the target can be debugged even when its software state is completely corrupt. Hardware debuggers are an indispensable tool for board bring-up and an invaluable asset for tackling problems that are intractable using software debuggers.
eCosCentric has extensive experience employing hardware based debuggers for eCos development. We have drawn upon this experience in the evaluation of product offerings from a range of vendors, determining which provide the best eCosPro compatibility, integration, and user experience.
All hardware debug products listed in the table below provide the following functionality:
- Compatible with the GNU tools provided with eCosPro
- Source and assembly level debugging of eCosPro based applications
- Interoperability with both GNU debugger (GDB) command line, and the Eclipse IDE's GDB GUI frontend
- Initialization of target hardware necessary for bare-board bring up (RAM, CPU, etc)
- Configuration file/script capability for automatic initialization of target hardware, or alternatively a GDB macro/script approach may be used if this is not available.
- Debugging of Flash-resident and RAM-resident code
- Seamless integration with host tools for direct loading, execution & debug of RAM based applications
- Most products are also capable of writing code and data directly to a target's on-board or on-chip flash - note that in some cases this is only available as an option and not included as standard.
Some of the products listed below provide configuration options to convert software breakpoint requests into hardware breakpoints. For when this functionality is not available, eCosPro's Eclipse based IDE had been extended to enable the manipulation of hardware breakpoints in addition to the standard software breakpoints.
Several products provide only limited or no support for directly programming the target's flash memory devices. In these instances eCosPro ports can include the ecoflash utility. The utility supports direct programming of all flash memory devices supported by the eCosPro on the target.
Each target board generally requires a configuration file or script specific to a vendor's hardware debugger to enable hardware debug on that board. This contains elements such as CPU and Flash selection, and CPU, cache and RAM initialization commands. eCosPro Developer's Kits provide configuration files for a small number of selected board and hardware debug combinations. If a configuration file is not available for the specific debug hardware and board combination that you require, then please contact eCosCentric for a quote to provide a suitable one.
|ARM11, Cortex-A7, Cortex-A53
|The TAP-HAT is a low-cost hardware debugger for the Raspberry Pi®. Its flexible multi-modal design supports USB-connected hardware debugging of a Pi board, connection of external hardware debuggers to a Pi, or use of the Pi as a network attached hardware debugger.
|Abatron BDI2000 & BDI3000
|JTAG, BDM & Nexus
|ARM7/9, Cortex-M, MIPS, ColdFire, PowerPC
|The BDI3000 been tested on a broad range ARM, Cortex-M and PowerPC CPUs. It is expected that the support for other architectures will also be eCosPro compatible. Default breakpoints selectable between hardware and software. Flash write capability included. GDB remote protocol supported directly by debugger hardware - no need for a host-based gdb server.
|Amontec JTAGkey & JTAGkey-Tiny
|ARM7 & ARM9
|The JTAGkeys are low cost devices that have all the basic features necessary for download and debug. Limited communications performance and a relativey limited range of supported CPUs and architectures. GDB remote protocol supported by OpenOCD JTAG server. JTAGKey's should compatible with many ARM processors, but support for specific models will require verification.
|Altera USB Blaster I & II
|USB & Ethernet
|Nios II, Altera HPS Cortex-A9
|USB-based software drivers available for both Windows and Linux hosts. The Altera USB Blaster™ is fully supported by the eCosPro Starter and Developer's Kits for the Altera Nios II. SMP support for Altera HPS Cortex-A9 coming soon.
|Only tested and supported for MIPS CPU's. It is expected that the support for other processors would also be eCosPro compatible. Opella software drivers were successfully used on both Linux and Windows hosts.
|USB2/3 & Ethernet
|JTAG, BDM & SWD
|ARM7/9/11, Cortex-A, Cortex-M, MIPS, PowerPC, X86
|Extensive architectural support. Multi-core and trace are optional features. GDB remote protocol supported by server running on host. Supported by eCosPro for both command line and Eclipse IDE based use.
|JTAG & SWD
|ARM7/9/11, Cortex-A, Cortex-M, ColdFire, MIPS, PowerPC
|The GDB remote protocol is supported directly by the hardware debugger, obviating the need for a separate gdb server to be run on a host. The debugger provides good communications performance and scripting capabilities. Default breakpoint type can be selected between hardware or software. Target reset control and remote reset detection. Flash write functionality covering both NAND and NOR flash. Peedi internal firmware is itself an eCos RTOS application. Supported by eCosPro for both command line and Eclipse IDE based use.
|USB & Ethernet
|JTAG & SWD
|ARM7/9/11, Cortex-A, Cortex-M, PIC32
|Extensive processor support. Optional trace support. GDB remote protocol supported J-Link GDB server running on host. Supported by eCosPro for both command line and Eclipse IDE based use.
Note that due to the constant evolution of hardware debug products firmware and specifications, and that evaluations have necessarily only covered a small subset of the potentially compatible hardware, we cannot guarantee that a given listed product will always be fully compatible with eCosPro. eCosCentric can only guarantee eCosPro compatibility with debug hardware and board combinations that we have tested and provided configuration scripts for.