Rewriting the Script for SoC Debug & Trace Configurations

Modern SoCs with complex multicluster, multicore arrangements, combining Arm IP with 3rd party IP blocks and modular trace architecture need a new approach to debugging.

Helping you make the most of the flexibility of the Arm CoreSight infrastructure, whilst abstracting away as much of the complexity as possible, DS-5 Development Studio uses the Debug and Trace Services Layer (DTSL) to provide you with access to your platform in DS-5. With simple Jython scripts, it’s easy to collect trace information from a variety of sources and pass it back to be analyzed in DS-5.

By auto-detecting the debug components in your SoC via DSTREAM, the Debug Hardware Configuration tool in DS-5 builds the Jython script for you. This can then be modified to support additional IP blocks, giving you convenience and customization.

Powerful Trace Collection

We give you a modular approach to SoC debug and trace setup with device objects, trace source objects, trace capture objects and custom IP blocks, all configured through DTSL. You don't need to know the exact address of a trace funnel in order to enable it, saving you time which would otherwise be spent wading through reference manuals.

How does it work?

DTSL interfaces (using Jython scripts) between DS-5 and underlying Java and C software layers which handle the technical properties of Arm CoreSight elements. It abstracts away unnecessary complexity, automatically dealing with CoreSight locks, register sequences and the device configuration sequence. DTSL also provides event hooks which can be over-ridden for custom functionality in reset, connection and core synchronization.

A sample of DTSL script, in this case to open the ports on a Cortex-A9 funnel, might look like this:

# Open ports 0 & 2 on the A9 funnel 

# Open port 0 on the master funnel


Option values can be marked as dynamic, allowing their state to change during a debug session. This allows certain trace objects, such as the Instruction Trace Macrocell (ITM) to be switched on during a debug session.

Add Support for your own Devices in DS-5

DTSL scripting gives you the tools to quickly add new development boards to DS-5. By adding a configuration for a custom board, it will appear in the debug configuration options alongside the boards and devices which are supported by DS-5 out of the box. Once a configuration has been defined, you’ll always have quick access to your platform and can easily share it across your development team. It is also possible to share your device debug configuration with us for future inclusion in public releases of DS-5.

Learn how to use DTSL scripting in practice

For practical tips on device bring-up and DTSL scripting, read through this guide by Ronan Synnott, one of our FAEs.

Learn how to add new tabs to the DS-5 DTSL options dialog with this tutorial. Enabling this customization means you can make your debug and trace configurations easy-to-use for the rest of your team.

The complete DTSL documentation is provided in the DS-5 Development Studio installation, in the C:\Program Files\DS-5\sw\DTSL folder. Also available is a complete Javadoc reference of each class.