As part of the debug tools suite, Imagination supplies a stand-alone, command-line, interface called Codescape Console that enables direct access to Imagination’s debug probes from your host PC without using the Codescape Debugger user interface. It is supplied with comprehensive command reference documentation and examples to enable development of functionally-complex scripts for performance optimization, testing, and low-level debug.
It is an extension of the cross-platform Python interpreter in which extensive task-specific tab completion and command history has been added. Commands are automatically available in the global namespace and are optimised to be easy to type. No knowledge of Python is required, but familiarity will help you to become more productive and maximise the potential of Codescape Console. Customers familiar with MIPS System Navigator Console (NavCon) will find that Codescape Console is very similar with equivalent commands.
- Low-level console application useful for chip bring-up – goes as low as IR and DR JTAG line control
- Cross-platform, based on Python
- Passive with predictable impact
- High levels of logging for registers, memory, disassembly and caches/TLB
- In-line assembler
- Elf load with symbols
- Tab complete plus history
- Full command reference documentation with examples
- Scriptable and customisable
- Use stand-alone or in conjunction with Codescape Debugger
Codescape Console is especially useful for target bring-up and low-level debug because only commands that are submitted by the user are performed. This allows you to execute such tasks as read/write memory and registers, or manually controlling IR and DR JTAG lines with very predictable impact on the target where using Codescape Debugger would result in a more intrusive target interaction. To support low-level bring-up, Imagination supplies comprehensive documentation and example scripts for validation of EJTAG implementation, target detect, and low-level troubleshooting.
Codescape Console provides high levels of logging for contents of registers, memory, disassembly and caches/TLB. For example, registers are displayed with field information, memory read results are displayed with address and ascii representation, and where no better display is available integer expressions are displayed in hexadecimal.
The asm assembler supplied with the Codescape MIPS toolchain can be invoked from Codescape Console and assembled instruction sequences displayed in the console. ELF program files with symbols can be loaded onto your target directly from Codescape Console. Target definition commands enable target configuration and TAP layout to be supplied to the debug probe to allow for a minimally-intrusive connection and to accommodate non-standard targets.
Writing Your Own Commands
Codescape Console is written in Python, therefore new commands can be easily written to automate common tasks. Assistance for writing and documenting extension commands is provided in the Codescape Console documentation.
Integrating With Codescape Debugger
Just as with any other high-level debugger, Codescape Debugger makes many demands on a connected target and problems can be encountered such as lock-up on illegal memory accesses or sensitivity to memory accesses performed shortly after reset. By using Codescape Console to initialise parts of the system you can enable Codescape Debugger to work more reliably with sensitive targets.
Connect scripts can be invoked from Codescape Debugger so a console script runs to perform connection tasks before Codescape Debugger connects to the target. Examples are provided for common tasks such as enabling the JTAG port on connection, initialising SPRAM, or dynamically selecting a hardware support package.
Once connection has been established, scripts that run with an active connection to Codescape Debugger can be invoked to run on various events such as target reset or breakpoints. Scripts can also be run from Codescape Debugger’s Run Script pane following user input or from the Script Region where graphical scripts can receive target events.
Download Codescape Console
Codescape Console is installed as part of the Codescape Debugger installation.