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, Arm Development Studio uses the Debug and Trace Services Layer (DTSL) to provide you with access to your platform. With simple Jython scripts, it’s easy to collect trace information from a variety of sources and pass it back to be analyzed in Development Studio.

CoreSight Connections Network Diagram.

By auto-detecting the debug components in your SoC via DSTREAM, the Debug Hardware Configuration tool in Development Studio 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 Development Studio 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 
self.funnel_A9.setPortEnabled(0)
self.funnel_A9.setPortEnabled(2)

# Open port 0 on the master funnel
self.funnel_master.setPortEnabled(0)

 

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 Development Studio

DTSL scripting gives you the tools to quickly add new development boards to Development Studio. 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 Development Studio 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 Development Studio.