ARM® DS-5 Debugger User Guide

Version 5.26

Table of Contents

About this book
Using this book
Typographic conventions
Other information
1 Introduction to DS-5 Debugger
1.1 Overview: DS-5 Debugger and important concepts
1.2 Overview: ARM® CoreSight™ debug and trace components
1.3 Overview: Debugging multi-core (SMP and AMP), big.LITTLE™ , and multi-cluster targets
1.3.1 Debugging SMP systems
1.3.2 Debugging AMP Systems
1.3.3 Debugging big.LITTLE™ Systems
1.4 Overview: Debugging ARM®-based Linux applications
1.5 Overview: Linux application rewind
1.6 Debugger concepts
2 Configuring debug connections in DS-5 Debugger
2.1 Overview: Debug connections in DS-5 Debugger
2.2 Launching DS-5 and connecting to DS-5 Debugger
2.3 Configuring a connection to a bare-metal hardware target
2.4 Configuring trace for bare-metal or Linux kernel targets
2.5 Configuring a connection to a Linux application using gdbserver
2.6 Configuring a connection to a Linux kernel
2.7 Using Fixed Virtual Platform (FVP)s with DS-5
2.7.1 Configuring a connection to an external Fixed Virtual Platform (FVP) for bare-metal application debug
2.7.2 Configuring a connection to a built-in Fixed Virtual Platform (FVP) model for Linux application debug
2.7.3 Configuring a connection from the command-line to a built-in Fixed Virtual Platform (FVP)
2.8 Configuring application rewind for Linux
2.8.1 Connecting to an existing application and starting an application rewind session
2.8.2 Downloading your application and application rewind server to the target system
2.8.3 Starting the application rewind server and debugging the target-resident application
2.9 Configuring an Events view connection to a bare-metal target
2.10 Exporting or importing an existing launch configuration
2.11 Disconnecting from a target
3 Controlling Target Execution
3.1 Overview: Breakpoints and Watchpoints
3.2 Running, stopping, and stepping through an application
3.3 Working with breakpoints
3.4 Working with watchpoints
3.5 Importing and exporting breakpoints and watchpoints
3.6 Viewing the properties of a breakpoint or a watchpoint
3.7 Associating debug scripts to breakpoints
3.8 Conditional breakpoints
3.9 Assigning conditions to an existing breakpoint
3.10 Conditional watchpoints
3.11 Assigning conditions to an existing watchpoint
3.12 Pending breakpoints and watchpoints
3.13 Setting a tracepoint
3.14 Handling UNIX signals
3.15 Handling processor exceptions
3.16 Cross-trigger configuration
3.17 Using semihosting to access resources on the host computer
3.18 Working with semihosting
3.19 Configuring the debugger path substitution rules
4 Working with the Target Configuration Editor
4.1 About the Target Configuration Editor
4.2 Target configuration editor - Overview tab
4.3 Target configuration editor - Memory tab
4.4 Target configuration editor - Peripherals tab
4.5 Target configuration editor - Registers tab
4.6 Target configuration editor - Group View tab
4.7 Target configuration editor - Enumerations tab
4.8 Target configuration editor - Configurations tab
4.9 Scenario demonstrating how to create a new target configuration file
4.9.1 Creating a memory map
4.9.2 Creating a peripheral
4.9.3 Creating a standalone register
4.9.4 Creating a peripheral register
4.9.5 Creating enumerations for use with a peripheral register
4.9.6 Assigning enumerations to a peripheral register
4.9.7 Creating remapping rules for a control register
4.9.8 Creating a memory region for remapping by a control register
4.9.9 Applying the map rules to the overlapping memory regions
4.10 Creating a power domain for a target
4.11 Creating a Group list
4.12 Importing an existing target configuration file
4.13 Exporting a target configuration file
5 Examining the Target
5.1 Examining the target execution environment
5.2 Examining the call stack
5.3 About trace support
5.4 About post-mortem debugging of trace data
6 Debugging Embedded Systems
6.1 About endianness
6.2 About accessing AHB, APB, and AXI buses
6.3 About virtual and physical memory
6.4 About address spaces
6.5 About debugging hypervisors
6.6 About debugging big.LITTLE systems
6.7 About debugging bare-metal symmetric multiprocessing systems
6.8 About debugging multi-threaded applications
6.9 About debugging shared libraries
6.10 About OS awareness
6.10.1 About debugging FreeRTOS ™
6.10.2 About debugging a Linux kernel
6.10.3 About debugging Linux kernel modules
6.10.4 About debugging ThreadX
6.11 About debugging TrustZone enabled targets
6.12 About debugging a Unified Extensible Firmware Interface (UEFI)
6.13 About debugging MMUs
6.14 About Debug and Trace Services Layer (DTSL)
6.15 About CoreSight™ Target Access Library
6.16 About debugging caches
6.17 About DS-5 Debugger support for overlays
7 Debugging with Scripts
7.1 Exporting DS-5 Debugger commands generated during a debug session
7.2 Creating a DS-5 Debugger script
7.3 Creating a CMM-style script
7.4 Support for importing and translating CMM scripts
7.4.1 Importing and translating a CMM script
7.4.2 Supported CMM commands for translations
7.5 About Jython scripts
7.6 Jython script concepts and interfaces
7.7 Creating Jython projects in Eclipse for DS-5
7.7.1 Creating a new Jython project in Eclipse for DS-5
7.7.2 Configuring an existing project to use the DS-5 Jython interpreter
7.8 Creating a Jython script
7.9 Running a script
7.10 Use case scripts
7.11 Metadata for use case scripts
7.12 Definition block for use case scripts
7.13 Defining the Run method for use case scripts
7.14 Defining the options for use case scripts
7.15 Defining the validation method for use case scripts
7.16 Example use case script definition
7.17 Multiple use cases in a single script
7.18 usecase list command
7.19 usecase help command
7.20 usecase run command
8 Running DS-5 Debugger from the operating system command-line or from a script
8.1 Overview: Running DS-5 Debugger from the command-line or from a script
8.2 Command-line debugger options
8.3 Running a debug session from a script
8.4 Specifying a custom configuration database using the command-line
8.5 Capturing trace data using the command-line debugger
8.6 DS-5 Debugger command-line console keyboard shortcuts
9 Working with the Snapshot Viewer
9.1 About the Snapshot Viewer
9.2 Components of a Snapshot Viewer initialization file
9.3 Connecting to the Snapshot Viewer
9.4 Considerations when creating debugger scripts for the Snapshot Viewer
10 Platform Configuration
10.1 DS-5 Configuration perspective
10.2 About importing platform and model configurations
10.3 About platform bring-up in DS-5
10.4 ARM debug and trace architecture
10.5 About the Platform Configuration Editor view
10.6 Creating a platform configuration
10.7 Editing a platform configuration in the PCE
10.8 About the device hierarchy in the PCE view
10.9 Manual platform configuration
10.10 Configuring your debug hardware unit for platform autodetection
10.11 Creating a new model configuration
10.12 Importing a custom model
10.13 Model Devices and Cluster Configuration
10.14 Adding a configuration database to DS-5
10.15 Configuration Database panel
10.16 Extending your configuration database
11 DS-5 Debug Perspectives and Views
11.1 App Console view
11.2 ARM Asm Info view
11.3 ARM assembler editor
11.4 Breakpoints view
11.5 C/C++ editor
11.6 Commands view
11.7 Debug Control view
11.8 Stack view
11.9 Disassembly view
11.10 Events view
11.11 Event Viewer Settings dialog box
11.12 Expressions view
11.13 Functions view
11.14 History view
11.15 Memory view
11.16 MMU view
11.17 Modules view
11.18 Registers view
11.19 OS Data view
11.20 Overlays view
11.21 Cache Data view
11.22 Screen view
11.23 Scripts view
11.24 Target Console view
11.25 Target view
11.26 Trace view
11.27 Trace Control view
11.28 Variables view
11.29 Timed Auto-Refresh Properties dialog box
11.30 Memory Exporter dialog box
11.31 Memory Importer dialog box
11.32 Fill Memory dialog box
11.33 Export Trace Report dialog box
11.34 Breakpoint Properties dialog box
11.35 Watchpoint Properties dialog box
11.36 Tracepoint Properties dialog box
11.37 Manage Signals dialog box
11.38 Functions Filter dialog box
11.39 Script Parameters dialog box
11.40 Debug Configurations - Connection tab
11.41 Debug Configurations - Files tab
11.42 Debug Configurations - Debugger tab
11.43 Debug Configurations - OS Awareness tab
11.44 Debug Configurations - Arguments tab
11.45 Debug Configurations - Environment tab
11.46 DTSL Configuration Editor dialog box
11.47 About the Remote System Explorer
11.48 Remote Systems view
11.49 Remote System Details view
11.50 Target management terminal for serial and SSH connections
11.51 Remote Scratchpad view
11.52 Remote Systems terminal for SSH connections
11.53 Terminal Settings dialog box
11.54 Debug Hardware Configure IP view
11.55 Debug Hardware Firmware Installer view
11.56 Connection Browser dialog box
11.57 DS-5 Debugger menu and toolbar icons
12 Troubleshooting
12.1 ARM Linux problems and solutions
12.2 Enabling internal logging from the debugger
12.3 Target connection problems and solutions
13 File-based Flash Programming in ARM DS-5
13.1 About file-based flash programming in ARM® DS-5
13.2 Flash programming configuration
13.3 Creating an extension database for flash programming
13.4 About using or extending the supplied ARM® Keil® flash method
13.4.1 Adding flash support to an existing platform using an existing Keil flash algorithm
13.4.2 Adding flash support to an existing target platform using a new Keil flash algorithm
13.5 About creating a new flash method
13.5.1 About using the default implementation FlashMethodv1
13.5.2 About creating the flash method Python script
13.6 About testing the flash configuration
13.7 About flash method parameters
13.8 About getting data to the flash algorithm
13.9 About interacting with the target
14 Writing OS Awareness for DS-5 Debugger
14.1 About Writing operating system awareness for DS-5 Debugger
14.2 Creating an OS awareness extension
14.3 Implementing the OS awareness API
14.4 Enabling the OS awareness
14.5 Implementing thread awareness
14.6 Implementing data views
14.7 Advanced OS awareness extension
14.8 Programming advice and noteworthy information
15 Debug and Trace Services Layer (DTSL)
15.1 Additional DTSL documentation and files
15.2 Need for DTSL
15.2.1 SoC design complexity
15.2.2 Debug flexibility
15.2.3 Integrated tool solutions
15.2.4 DS-5 Debugger architecture before DTSL
15.2.5 DS-5 Debugger architecture after DTSL
15.2.6 DS-5 Debugger connection sequence showing where DTSL fits in
15.3 DS-5 configuration database
15.3.1 Modifying DS-5 configdb
15.3.2 Configdb board files
15.3.3 About project_types.xml
15.3.4 About the script
15.3.5 DTSL script
15.4 DTSL as used by DS-5 Debugger
15.4.1 Eclipse debug session launcher dialog
15.4.2 Connecting to DTSL
15.4.3 DTSL access from Debugger Jython scripts
15.5 Main DTSL classes and hierarchy
15.5.1 DTSL configuration objects
15.5.2 DTSL device objects
15.5.3 CoreSight device component register IDs
15.5.4 DTSL trace source objects
15.5.5 DTSL trace capture objects
15.5.6 Memory as seen by a core device
15.5.7 Physical memory access via CoreSight
15.5.8 DTSL MEM-AP support
15.5.9 Linking MEM-AP access to a core device
15.6 DTSL options
15.6.1 DTSL option classes
15.6.2 DTSL option example walk-through
15.6.3 Option names and hierarchy
15.6.4 Dynamic options
15.6.5 Option change notification
15.6.6 Option change notification example walk-through
15.7 DTSL support for SMP and AMP configurations
15.7.1 AMP systems and synchronized execution
15.7.2 Execution synchronization levels
15.7.3 Software synchronization
15.7.4 Tight synchronization
15.7.5 Hardware synchronization
15.7.6 SMP states
15.7.7 Use of CTI for SMP execution synchronization
15.8 DTSL Trace
15.8.1 Platform trace generation
15.8.2 DTSL trace decoding
15.8.3 DTSL decoding stages
15.8.4 DTSL trace client read interface
15.8.5 Supporting multiple trace capture devices
15.8.6 Decoding STM STPv2 output
15.8.7 Example STM reading code
15.8.8 STM objects
15.8.9 DTSL client time-stamp synchronization support
15.9 Extending the DTSL object model
15.9.1 Performing custom actions on connect
15.9.2 Overriding device reset behavior
15.9.3 Adding a new trace capture device
15.10 Debugging DTSL Jython code within DS-5 Debugger
15.10.1 DTSL Jython syntax errors
15.10.2 Errors reported by the launcher panel
15.10.3 Errors reported at connection time
15.10.4 DTSL Jython functional errors
15.10.5 Walk-through of a DTSL debug session
15.10.6 Starting a second instance of DS-5 for Jython debug
15.10.7 Preparing the DTSL script for debug
15.10.8 Debugging the DTSL code
15.11 DTSL in stand-alone mode
15.11.1 Comparing Java with Jython for DTSL development
15.11.2 DTSL as used by a stand-alone Jython program
15.11.3 Installing the Jython example within Eclipse
15.11.4 Running the Jython program
15.11.5 Invoking the Jython program
15.11.6 About the Jython program
15.11.7 DTSL as used by a stand-alone Java program
15.11.8 Installing the Java example within Eclipse
15.11.9 Running the Java program
15.11.10 Invoking the Java program
15.11.11 About the Java program
16 Reference
16.1 Standards compliance in DS-5 Debugger
16.2 DS-5 Debug perspective keyboard shortcuts
16.3 About loading an image on to the target
16.4 About loading debug information into the debugger
16.5 About passing arguments to main()
16.6 Running an image
16.7 Updating multiple debug hardware units

List of Figures

1-1 Versatile Express A9x4 SMP configuration
1-2 Core 1 stopped on stepi command
2-1 MyBareMetalConfig - Connection tab
2-2 MyBareMetalConfig - Files tab
2-3 MyBareMetalConfig - Debugger tab
2-4 Select the debug configuration
2-5 Select Trace capture method
2-6 Select the processors you want to trace
2-7 Debug Configurations - ARM FVP - Base_AEMv8A_AEMv8A
2-8 My_BareMetal_Model_Configuration - Debug Control view
2-9 Debug Configurations - ARM FVP (Installed with DS-5)
2-10 Application Debug with Rewind Support - Connect to already running application
2-11 Events view with data from the ITM source
2-12 Export launch configuration dialog box
2-13 Launch configuration selection panels
2-14 Launch configuration file selection panels
2-15 Disconnecting from a target
3-1 Debug Control view
3-2 Viewing breakpoints
3-3 Setting a data watchpoint on a data symbol
3-4 Import and export breakpoints and watchpoints
3-5 Viewing the properties of a breakpoint
3-6 Viewing the properties of a data watchpoint
3-7 Breakpoint Properties dialog
3-8 Watchpoint Properties dialog
3-9 Manage signals dialog (UNIX signals)
3-10 Manage Signals dialog
3-11 Typical layout between top of memory, stack, and heap
3-12 Set Path Substitution
3-13 Path Substitution dialog box
3-14 Edit Substitute Path dialog box
4-1 Specifying TCF files in the Debug Configurations window
4-2 Target configuration editor - Overview tab
4-3 Target configuration editor - Memory tab
4-4 Target configuration editor - Peripherals tab
4-5 Target configuration editor - Registers tab
4-6 Target configuration editor - Group View tab
4-7 Target configuration editor - Configuration tab
4-8 LED register and bitfields
4-9 Core module and LCD control register
4-10 Creating a Memory map
4-11 Creating a peripheral
4-12 Creating a standalone register
4-13 Creating a peripheral register
4-14 Creating enumerations
4-15 Assigning enumerations
4-16 Creating remapping rules
4-17 Creating a memory region for remapping by a control register
4-18 Applying the Remap_RAM_block1 map rule
4-19 Applying the Remap_ROM map rule
4-20 Power Domain Configurations
4-21 Creating a group list
4-22 Selecting an existing target configuration file
4-23 Importing the target configuration file
4-24 Exporting to C header file
4-25 Selecting the files
5-1 Target execution environment
5-2 Stack view showing information for a selected core
6-1 Threading call stacks in the Debug Control view
6-2 Adding individual shared library files
6-3 Modifying the shared library search paths
6-4 Cache Data view (showing L1 TLB cache)
6-5 DTSL Configuration Editor (Cache RAMs configuration tab)
7-1 Commands generated during a debug session
7-2 PyDev project wizard
7-3 PyDev project settings
7-4 Jython auto-completion and help
7-5 Scripts view
8-1 Enable trace in the DTSL options
8-2 Command-line debugger connection with DTSL option enabled
10-1 New PCE project
10-2 Platform creation options
10-3 Enter CMM script parameters
10-4 Debug hardware firmware update notification during platform configuration
10-5 Create new configuration database
10-6 New platform information
10-7 Component Connections
10-8 Missing slaves
10-9 Device hierarchy
10-10 Add Core Trace
10-11 Add CTI Trigger
10-12 User added component connections
10-13 Project Explorer
10-14 Full debug and trace
10-15 Debug Activities
10-16 DTSL Options
10-17 Device hierarchy
10-18 Devices Panel
10-19 Autodetect settings
10-20 Configuration Database
10-21 Model Devices and Cluster Configuration tab
10-22 Adding a configuration database
10-23 Configuration Database panel
11-1 App Console view
11-2 ARM Asm Info view
11-3 ARM assembler editor
11-4 Breakpoints view showing breakpoints and sub-breakpoints
11-5 C/C++ editor
11-6 Show disassembly for selected source line
11-7 Commands view
11-8 Debug Control view
11-9 Show in Stack option
11-10 Stack view showing information for a selected core
11-11 Stack view locked to a selected context
11-12 Disassembly view
11-13 Events view (Shown with all ports enabled for an ETB:ITM trace source)
11-14 Event Viewer Settings (Shown with all Masters and Channels enabled for an ETR:STM trace source)
11-15 Expressions view
11-16 Functions view
11-17 History view
11-18 Memory view
11-19 Memory view with Show Cache option enabled
11-20 Memory view preferences
11-21 MMU Translation tab view
11-22 MMU Tables tab view
11-23 Memory Map tab view
11-24 MMU settings
11-25 Modules view showing shared libraries
11-26 Registers view (with all columns displayed)
11-27 Search for registers
11-28 Registers access rights
11-29 OS Data view (showing Keil CMSIS-RTOS RTX Tasks)
11-30 Overlays view
11-31 Cache Data view (showing L1 TLB cache)
11-32 Screen buffer parameters
11-33 Screen view
11-34 Scripts view
11-35 Target view
11-36 Trace view with a scale of 100:1
11-37 Trace Control view
11-38 Variables view
11-39 Timed Auto-Refresh Properties dialog box
11-40 Memory Exporter dialog box
11-41 Memory Importer dialog box
11-42 Fill Memory dialog box
11-43 Export Trace Report dialog box
11-44 Breakpoint properties dialog box
11-45 Watchpoint Properties dialog box
11-46 Tracepoint Properties dialog box
11-47 Manage Signals dialog box
11-48 Function filter dialog box
11-49 Script Parameters dialog box
11-50 Connection tab (Shown with connection configuration for an FVP with virtual file system support enabled)
11-51 Files tab (Shown with file system configuration for an application on an FVP)
11-52 Debugger tab (Shown with settings for application starting point and search paths)
11-53 OS Awareness tab
11-54 Arguments tab
11-55 New Environment Variable dialog box
11-56 Environment tab (Shown with environment variables configured for an FVP)
11-57 DTSL Configuration Editor (Shown with Trace capture method set to DSTREAM)
11-58 Remote Systems view
11-59 Remote System Details view
11-60 Terminal view
11-61 Remote Scratchpad
11-62 Remote Systems terminal
11-63 Terminal Settings dialog box
11-64 Debug Hardware Configure IP view
11-65 Debug Hardware Firmware Installer view
11-66 Connection Browser (Showing a USB connected DSTREAM)
13-1 DS-5 File Flash Architecture
14-1 Eclipse preferences for mydb
14-2 Custom OS awareness displayed in Eclipse Debug Configurations dialog
14-3 myos waiting for symbols to be loaded
14-4 myos waiting for the target to stop
14-5 myos Enabled
14-6 myos waiting for the OS to be initialised
14-7 myos Debug Control view data
14-8 myos Empty Tasks table
14-9 myos populated Tasks table
14-10 OS awareness with parameters
15-1 A simple CoreSight Design
15-2 Initial DS-5 Debugger SW Stack
15-3 Post DTSL DS-5 Debugger SW Stack
15-4 DTSL Configuration class hierarchy
15-5 DTSL Device object hierarchy
15-6 DTSL Trace Source class hierarchy
15-7 DTSL Trace Capture Objects
15-8 MEM-AP Access Ports
15-9 MEM-AP Class Hierarchy
15-10 DTSL Option Classes
15-11 DSTREAM Trace Options
15-12 Example use of CTI for H/W execution synchronization
15-13 Trace Generation
15-14 DTSL Trace Decoding Stages for DSTREAM
15-15 DTSL Trace Pipeline Hierarchy
15-16 ETB Trace Decode Pipeline Stages
15-17 Example of Multiple Trace Capture Devices
15-18 STM Object Model
15-19 Launcher panel reporting DTSL Jython script error
15-20 Connection Error Dialog
16-1 Load File dialog box
16-2 Load additional debug information dialog box

List of Tables

3-1 Semihosting trap instructions and encodings
4-1 DMA map register SYS_DMAPSR0
4-2 Control bit that remaps an area of memory
10-1 Elements used in the components.xml file
11-1 Function icons
11-2 Files tab options available for each Debug operation
11-3 DS-5 Debugger icons
11-4 Perspective icons
11-5 View icons
11-6 View markers
11-7 Miscellaneous icons
15-1 CTI Signal Connections

Release Information

Document History
Issue Date Confidentiality Change
A 30 June 2010 Non-Confidential First release
B 30 September 2010 Non-Confidential Update for DS-5 version 5.2
C 30 November 2010 Non-Confidential Update for DS-5 version 5.3
D 30 January 2011 Non-Confidential Update for DS-5 version 5.4
E 30 May 2011 Non-Confidential Update for DS-5 version 5.5
F 30 July 2011 Non-Confidential Update for DS-5 version 5.6
G 30 September 2011 Non-Confidential Update for DS-5 version 5.7
H 30 November 2012 Non-Confidential Update for DS-5 version 5.8
I 28 February 2012 Non-Confidential Update for DS-5 version 5.9
J 30 May 2012 Non-Confidential Update for DS-5 version 5.10
K 30 July 2012 Non-Confidential Update for DS-5 version 5.11
L 30 October 2012 Non-Confidential Update for DS-5 version 5.12
M 15 December 2012 Non-Confidential Update for DS-5 version 5.13
N 15 March 2013 Non-Confidential Update for DS-5 version 5.14
O 14 June 2013 Non-Confidential Update for DS-5 version 5.15
P 13 September 2013 Non-Confidential Update for DS-5 version 5.16
Q 13 December 2013 Non-Confidential Update for DS-5 version 5.17
R 14 March 2014 Non-Confidential Update for DS-5 version 5.18
S 27 June 2014 Non-Confidential Update for DS-5 version 5.19
T 17 October 2014 Non-Confidential Update for DS-5 version 5.20
U 20 March 2015 Non-Confidential Update for DS-5 version 5.21
V 15 July 2015 Non-Confidential Update for DS-5 version 5.22
W 15 October 2015 Non-Confidential Update for DS-5 version 5.23
X 15 March 2016 Non-Confidential Update for DS-5 version 5.24
Y 15 July 2016 Non-Confidential Update for DS-5 version 5.25
Z 18 November 2016 Non-Confidential Update for DS-5 version 5.26

Non-Confidential Proprietary Notice

This document is protected by copyright and other related rights and the practice or implementation of the information contained in this document may be protected by one or more patents or pending patent applications. No part of this document may be reproduced in any form by any means without the express prior written permission of ARM. No license, express or implied, by estoppel or otherwise to any intellectual property rights is granted by this document unless specifically stated.

Your access to the information in this document is conditional upon your acceptance that you will not use or permit others to use the information for the purposes of determining whether implementations infringe any third party patents.

THIS DOCUMENT IS PROVIDED “AS IS”. ARM PROVIDES NO REPRESENTATIONS AND NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY, SATISFACTORY QUALITY, NON-INFRINGEMENT OR FITNESS FOR A PARTICULAR PURPOSE WITH RESPECT TO THE DOCUMENT. For the avoidance of doubt, ARM makes no representation with respect to, and has undertaken no analysis to identify or understand the scope and content of, third party patents, copyrights, trade secrets, or other rights.

This document may include technical inaccuracies or typographical errors.


This document consists solely of commercial items. You shall be responsible for ensuring that any use, duplication or disclosure of this document complies fully with any relevant export laws and regulations to assure that this document or any portion thereof is not exported, directly or indirectly, in violation of such export laws. Use of the word “partner” in reference to ARM’s customers is not intended to create or refer to any partnership relationship with any other company. ARM may make changes to this document at any time and without notice.

If any of the provisions contained in these terms conflict with any of the provisions of any signed written agreement covering this document with ARM, then the signed written agreement prevails over and supersedes the conflicting provisions of these terms. This document may be translated into other languages for convenience, and you agree that if there is any conflict between the English version of this document and any translation, the terms of the English version of the Agreement shall prevail.

Words and logos marked with ® or ™ are registered trademarks or trademarks of ARM Limited or its affiliates in the EU and/or elsewhere. All rights reserved. Other brands and names mentioned in this document may be the trademarks of their respective owners. Please follow ARM’s trademark usage guidelines at

Copyright © 2010-2016, ARM Limited or its affiliates. All rights reserved.

ARM Limited. Company 02557590 registered in England.

110 Fulbourn Road, Cambridge, England CB1 9NJ.


Confidentiality Status

This document is Non-Confidential. The right to use, copy and disclose this document may be subject to license restrictions in accordance with the terms of the agreement entered into by ARM and the party that ARM delivered this document to.

Unrestricted Access is an ARM internal classification.

Product Status

The information in this document is Final, that is for a developed product.

Web Address

Non-ConfidentialPDF file icon PDF versionARM DUI0446Z
Copyright © 2010-2016 ARM Limited or its affiliates. All rights reserved.