In-Circuit Debug Support
PROMJet In-Circuit Emulation (ICE) option enables host or debug software to access entire PROMJet's emulation memory while target processor is executing code and accessing PROMJet memory and without temporary halting the target processor. This allows the user to dynamically modify process control variables, look-up tables, loop counts, timing constants, performance variables or force conditions to simulate external stimulus in real time without stopping the target system. This feature can also be used to establish a communication channel between the host computer and the target system via PROMJet's dual-ported emulation memory. To support interrupt-driven communication, PROMJet generates INT and /INT output signals that can be used by the target system.
PROMJet offers the most, if not the only, solid and proven dual-ported memory support in the industry. It was introduced in 1994 and has proven itself in thousands of installations worldwide. Some products claim to offer this feature but no other product delivers such a solid support without ANY target processor impact.
Furthermore, if the target processor cannot use the write cycle to modify PROMJet's memory (due to write signal not connected), it may use the Write-By-Reading (WBR) function to write PROMJet memory. This function is activated when the target CPU executes a sequence of read operations to a preset memory addresses inside PROMJet emulation memory (similar to Flash programming algorithm). This feature allows the target processor to communicate with the host software by simply reading PROMJet memory space. A complete set of device drivers, DLLs and libraries for high level languages are available on the host and target sides to facilitate this feature and to enable the integration of PROMJet into any software application.
The last two features (ICE and WBR) are the key to true non-intrusive and transparent memory-based debugging for processors with no JTAG debug capabilities. It enables PROMJet to work with monitor-based software debuggers allowing the user to remotely debug an embedded application from a host computer via a USB, parallel or Ethernet connection. PROMJet does not use any system resources or memory outside the debugger monitor space. Additionally, it makes the full Flash memory space accessible during application debugging. This eliminates the need to relocate the firmware code, which would normally execute from Flash memory, after debugging the application . When used with a monitor-based software debugger, PROMJet provides nearly all the functionality of a processor ICE at a fraction of the cost. It supports a variety of processors with no additional probes since it connects to the Flash socket.
PROMJet in-Circuit Emulation is also fully integrated into DebugJet JTAG debug interface. When PROMJet-ICE is used when debugging a JTAG-enabled processor, such as an ARM or a PowerPC core, DebugJet can use PROMJet dual-ported emulation memory to access target memory space without stopping the target CPU via the JTAG interface. This allows the debug software to display or modify real-time variables while the target CPU is running. Some JTAG emulators offer such features by simply stopping the CPU for a short time to access the memory space and then let it run again. This would normally alter performance information.
The user has to simply locate all the variables to be displayed or modified in real-time to PROMJet emulation memory space when linking the application under development. PROMJet has to be connected to the target processor to emulate the specified memory space. DebugJet and PROMJet will do all the work needed to facilitate this feature.
Plug-and-Play drivers to support industry-standard software debuggers. Support is available for Paradigm Systems Debugger fo 80x86 processors.
ARM and PowerPC processors are supported using EmuTec's Eclipse-based JTAG Xpresso Debugger.
Below are some highlights for PROMJet In-Circuit Emulation features.
Supports memory access on-the-fly while the target processor is executing code without any hardware arbitration signals.
Supports virtual communication channel protocol to allow communication between host and target system using PROMJet memory.
Full integration with DebugJet JTAG debug interface so user can view real time target system data without stopping the CPU.
Extensive support for GDB Debugger and the Eclipse IDE.
Support for x86 processors using Paradigm debugger.