Codescape Debugger includes many new features for native debugging of MIPS targets.
Download our factsheet from here
- Simultaneous multiple debug adapter connections to multi-SoC, multi-core, multi-VPE with multi-OS task support
- OS-aware debug support for Linux®, ThreadX®, Nucleus™, Free RTOS and MEOS™
- Ultra-fast debugging performance using intelligent, low latency probes (< 1 sec step with multiple connections, VPEs, TCs & threads. > 1 MByte/sec binary load).
- Configurable debug regions
- Python scripting support
- Run external tools such as make and user scripts at a key press
- Powerful and cost-effective system for all members of the SoC and application development team
- Single IDE for the entire development cycle
- Mature solutions that minimize design risk and reduce time to market
- Proven technology used by major SoC manufacturers
- IP evaluation
- SoC design
- SoC bring-up
- Driver development
- Application development
- Code optimization
Codescape Debugger forms the hub of a system that facilitates all stages of development alongside a low-level command-line console, built-in scripting, intelligent debug probes, emulators and simulators. For pre-hardware application development, Codescape Debugger works with the MIPS Instruction Accurate Simulator (IASim) and QEMU emulator. For silicon bring-up, application development, and testing on real hardware, Codescape Debugger can connect to Imagination’s range of debug probes supporting JTAG, cJTAG and EJTAG equipped targets. Host connection via USB or Ethernet enables remote debugging across networks.
Codescape Debugger is driven from its own powerful GUI, running natively on 32-bit and 64-bit Windows, Linux and Mac OS hosts. For fast, efficient debugging, it provides a host of useful debug views and features such as editable memory, drag and drop between views and real-time OS-aware debugging. For more advanced product development, Codescape Debugger has many state-of-the-art features such as built-in graphical scripting, a fully-annotated memory mapped peripheral inspector, real-time event tracing and support for multi-SoC, multi-core, multi-VPE and multi-OS task development and debugging.
Simultaneously connect to a variety of multi-VPE and multi-core real and simulated targets debugging multiple OSes.
View task swaps between threads with native RTOS-aware debugging.
What Codescape Debugger Can Debug
Codescape Debugger has been designed from the ground up to have multiple connections to multiple, heterogeneous, multi-core SoCs with hardware threads, virtual processors (VPEs), hardware thread contexts (TCs), and multiple software threads.
Linux Application Debug
Linux applications can be debugged via gdbserver running on Linux on the target. Connecting to gdbserver over a specified port, Codescape Debugger displays gdbserver as a target, and when debugging Linux user code with multiple threads, each pthread can be debugged just like a core.
The MIPS Toolkit and Codescape Debugger provide support for semihosting functions from a target via a built-in API in the toolkit. The Codescape Debugger allows you to set a root directory for semi-hosting operations so that programs running on a target can use relative address pathing for file operations. No additional libraries or function calls are required. Semihosting operations supported include file operations such as fopen, fwrite, fread and fclose and outputs such as stdout, stderr and printf.
Codescape Debugger provides a host of useful debugging regions to display data, and using the extensive scripting support you can create bespoke regions and plug-ins to display your data in unique ways. Regions can be tied to specific threads, or the current thread, can be docked, floating or stacked in tabbed groups. Data can be dragged between regions and targets using intelligent, contextual drag-and-drop.
|Source||Fully featured syntax highlighted editor.|
|Hex Editor||Edit and display binaries in many formats.|
|Disassembly||Can show interleaved source and disassembly.|
|Register||Layout is user definable and can display in different radices/formats.|
|Callstack||Can unwind through interrupt handlers. Uses code reading and debug info.|
|Memory||Shows all types of memory (RAM, DSP, CORE etc) in many different formats.|
|Breakpoint||Shows breakpoint state for all, current, or specific threads.|
|Watch||Watch and edit values of variables or complex expressions.|
|Local Watch||Automatically populated with variables in the current scope.|
|Peripheral Watch||Populated with the peripheral registers. Bit fields shown/edited as mnemonics.|
|RTOS Watch||Automatically populated with RTOS data e.g. threads, mutexes, block pools|
|RTOS Trace||Graphically displays the Task execution captured by the RTOS.|
|TLB||Displays all TLB in Raw or Decoded format.|
|ICache||Displays the ICache in a human readable format.|
|DCache||Displays the DCache in a human readable format.|
|Script||Create your own region using wxWidgets & Python.|
|Terminal||VT100 emulator. Stream output to file.|
|Profiler||Low impact PC capture. Data shown next to code.|
|Realtime Trace||Graphical representation of Real Time Trace data.|
|Trace Results||Setup and display data from the MIPS PDTrace system.|
|Overlay||Shows the current status of Overlays.|
Codescape Debugger’s Make Manager provides a quick and simple way to call ‘make’ and see your build log without exiting the Codescape Debugger. Multiple configurations for ‘make’ can be specified with individually-specified parameters for each configuration.
MIPS supplies an advanced, Python-based, scripting interface and command-line console, Codescape Console, that enables direct access to MIPS debug probes from your host PC without using the Codescape Debugger user interface. This provides an ultra-low-level, non-intrusive, scripting layer that is ideal for target bring-up and allows you to perform such tasks as read/write memory and registers, or manually control JTAG signals, with very predictable impact on the target.
In addition to this external scripting environment, Codescape Debugger has its own internal, fully-configurable, script region that supports standard wxPython to enable advanced graphical scripting for data visualization, input/output device emulation, and the creation of bespoke debug regions.
Statistical profiling data, with variable sample rate, can be displayed alongside the standard Source and Disassembly regions.
Trace Results Region
The Trace Results Region reads trace data saved by MIPS PDTrace on-chip tracing hardware. The data captured is configurable and includes processor-specific information captured from each pipeline and from non-processor-specific blocks such as the Coherence Manager block in a coherent multi-processor system.
RTOS Trace Region
Codescape Debugger supports debug and trace of several common real-time operating systems, including ThreadX, FreeRTOS and MEOS. The RTOS Watch region reads, formats, and displays system variables in use by real-time operating systems, and the RTOS Trace region reads, processes, and displays thread execution order and duration.