ARM Studio
ARM Studio
Version 2024.1
Non-Confidential Issue 00
Copyright © 2018–2024 Arm Limited (or its affiliates). 101469_2024.1_00_en
All rights reserved.
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
This document (101469_2024.1_00_en) was issued on 2024-12-17. There might be a later issue at
https://developer.arm.com/documentation/101469
See also: Proprietary notice | Product and document information | Useful resources
Start reading
If you prefer, you can skip to the start of the content.
Intended audience
This book describes how to get started with Arm® Development Studio. It takes you through the
processes of installing and licensing Arm Development Studio, and guides you through some of the
common tasks that you might encounter when using Arm Development Studio for the first time.
We believe that this document contains no offensive language. To report offensive language in this
document, email terms@arm.com.
Feedback
Arm welcomes feedback on this product and its documentation. To provide feedback on the
product, create a ticket on https://support.developer.arm.com.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 2 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Contents
Contents
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 4 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Contents
6. Writing code.................................................................................................................................................. 93
6.1 Editing source code..................................................................................................................................... 93
6.2 About the C/C++ editor.............................................................................................................................94
6.3 About the Arm assembler editor..............................................................................................................94
6.4 About the ELF content editor...................................................................................................................95
6.5 ELF content editor - Header tab..............................................................................................................96
6.6 ELF content editor - Sections tab............................................................................................................96
6.7 ELF content editor - Segments tab......................................................................................................... 97
6.8 ELF content editor - Symbol Table tab...................................................................................................98
6.9 ELF content editor - Disassembly tab.....................................................................................................99
6.10 About the scatter file editor................................................................................................................. 100
6.11 Creating a scatter file............................................................................................................................. 101
6.12 Importing a memory map from a BCD file....................................................................................... 103
7. Debugging code..........................................................................................................................................106
7.1 Using FVPs with Arm Development Studio.........................................................................................106
7.2 Configuring a connection from the command-line to a built-in FVP.............................................107
7.3 Configuring a connection to an external FVP for bare-metal application debug........................ 108
7.4 Configuring a connection to a bare-metal hardware target.............................................................111
7.5 Configuring a connection to a bare-metal hardware target using gdbserver............................... 115
7.6 Configuring a connection to a Linux application using gdbserver..................................................117
7.7 Configuring a connection to a Linux kernel........................................................................................ 119
7.8 Configuring trace for bare-metal or Linux kernel targets................................................................. 122
7.9 Configuring an Events view connection to a bare-metal target......................................................125
7.10 Exporting or importing an existing Arm Development Studio launch configuration................ 127
7.11 Disconnecting from a target................................................................................................................. 132
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 5 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Contents
A. Terminology.................................................................................................................................................204
Proprietary notice..........................................................................................................................................208
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 6 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Introduction to Arm Development Studio
It includes:
The Arm Compiler for Embedded 6 toolchain.
Build embedded and bare-metal embedded applications.
Arm Debugger
A graphical debugger supporting software development on Arm processor-based targets and
Fixed Virtual Platform (FVP) targets.
Fixed Virtual Platform (FVP) targets
Single and multi-core simulation models for architectures Armv6-M, Armv7-A/R/M, Armv8-
A/R/M, and Armv9-A. These enable you to develop software without any hardware.
Arm Streamline
A graphical performance analysis tool that enables you to transform sampling data and
system trace into reports that present data in both visual and statistical forms.
Dedicated examples, applications, and supporting documentation to help you get started with using
Arm Development Studio tools.
Some third-party compilers are compatible with Arm Development Studio. For example, the GNU
Compiler tools enable you to compile bare-metal, Linux kernel, and Linux applications for Arm
targets.
As part of the download package, Arm Development Studio includes Arm Compiler for Embedded
6 for compiling embedded and bare-metal embedded applications. It supports the Armv6-M,
Armv7, Armv8, and Armv9-A architectures.
There are two Arm Compiler toolchains that work with Arm Development Studio; the legacy Arm
Compiler 5, and the latest Arm Compiler for Embedded 6. You can run these toolchains in the Arm
Development Studio IDE, or from the command line.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 7 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Introduction to Arm Development Studio
Related information
Register a compiler toolchain on page 31
Using Arm Debugger through the IDE allows you to debug bare-metal and Linux applications with
comprehensive and intuitive views, including:
• Synchronized source and disassembly.
• Call stack.
• Memory.
• Registers.
• Expressions.
• Variables.
• Threads.
• Breakpoints.
• Trace.
The Debug Control view enables you to single-step through applications at source-level or
instruction-level, and see other views update when the code is executed. Setting breakpoints or
watchpoints stops the application and allows you to explore the behavior of the application. You
can also use the view to trace function executions in your application with a timeline showing the
sequence of events, if supported by the target.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 8 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Introduction to Arm Development Studio
You can also debug using the Arm DS Command Prompt command-line console, which allows for
automation of debug and trace activities through scripts.
Related information
Debug control view
Running Arm Debugger from the command-line and using scripts
Debug probes
Debug probes vary in complexity and capability. When you use them with Arm Development
Studio, they provide high-level debug functionality, for example:
• Reading/writing registers
• Setting breakpoints
• Reading from memory
• Writing to memory
If you are using the FTDI MPSSE JTAG probe on Linux, the OS automatically
installs an incorrect driver when you connect this probe. For details on how to
fix this issue, see FTDI probe: Incompatible driver error.
If you are using the Intel FPGA Download Cable debug probes, Arm Debugger can connect to
the following boards:
◦ NX5
◦ Agilex 5
◦ Agilex 7
◦ Arria V SoC
◦ Arria 10 SoC
◦ Cyclone V SoC
◦ Stratix 10
To enable the connections, ensure that the environment variable QUARTUS_ROOTDIR is set and
contains the path to the Quartus tools installation directory:
◦ On Windows, this environment variable is usually set by the Quartus tools installer.
◦ On Linux, you might have to manually set the environment variable to the Quartus tools
installation path. For example, ~/<quartus_tools_installation_directory>/qprogrammer.
For information on installing device drivers for Intel FPGA Download Cable and Intel FPGA
Download Cable II, consult your Quartus tools documentation.
For information on how to enable connections to these probes within Arm Development Studio,
contact the debug probes vendors.
Debug connections
Debug connections allow the debugger to debug a variety of targets.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 10 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Introduction to Arm Development Studio
When using an FVP, absolute timing accuracy is sacrificed to achieve fast simulated execution
speed. This means that you can use a model for confirming software functionality, but you must
not rely on the accuracy of cycle counts, low-level component interactions, or other hardware-
specific behavior.
Arm® Development Studio provides several FVPs, covering a range of processors in the Cortex®
family. You can also connect to a variety of other Arm and third-party simulation models that
implement the Iris interface for debug and trace, or the deprecated Component Architecture Debug
Interface (CADI).
Related information
The Iris User Guide
Introduction to the Component Architecture Debug Interface (CADI)
Arm Streamline uses hardware performance counters with kernel metrics to provide an accurate
representation of system resources.
Related information
Streamline documentation
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 11 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Installing and configuring Arm Development Studio
There are two ways to install Arm Development Studio on Windows. You can use either the
installation wizard, or the command line.
You can install multiple versions of Arm Development Studio on Windows and Linux platforms. To
do this, you must use different root installation directories.
Hardware requirements
To install and use Arm Development Studio, your workstation must have at least:
• A dual core x86 2 GHz processor (or equivalent).
• 2 GB of RAM.
• Approximately 3 GB of hard disk space.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 12 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Installing and configuring Arm Development Studio
For information on adding other versions of Arm Compiler to Arm Development Studio, including
Arm Compiler 5, see Register a compiler toolchain.
Bare-metal requirements
You require a debug unit to connect bare-metal targets to Arm® Development Studio. For a list of
supported debug units, see Debug Probes.
In addition to gdbserver, certain architecture and debug features have minimum Linux kernel
version requirements. This is shown in the following table:
• To use ULINK2™ debug probe with Arm Debugger, you must upgrade with CMSIS-DAP
compatible firmware. On Windows, the UL2_Upgrade.exe program can upgrade your ULINK2™
unit. The program and instructions are available in <install_directory>/sw/debughw/ULINK2.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 13 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Installing and configuring Arm Development Studio
• For ULINKpro™ and ULINKpro D, Arm Development Studio manages the firmware installation.
Procedure
1. Unzip the downloaded .zip file.
2. Open the command prompt with administrative privileges.
3. Run the Microsoft installer, msiexec.exe on the armds-<version>.msi file using the msiexec
standard options and the following Arm-specific options:
/EULA
Set EULA to 1 to accept the End User License Agreement (EULA). You must read the
EULA before accepting it using this option. Find the EULA in the GUI installer, the
installation files, or on the Arm Development Studio downloads page.
If you do not set EULA to 1, the installation fails with errors written to the msi installation
log.
INSTALL_CERT
Set INSTALL_CERT to 1 to install the Arm certificate that allows device drivers to be
installed without requesting administrator permission. A dialog requesting permission
to install the Arm certificate appears during the installation unless the certificate was
previously installed or INSTALL_CERT is set to 1.
SKIP_DRIVERS
Set SKIP_DRIVERS to 1 to prevent the installation of USB device drivers during
installation.
Arm recommends that you install the device drivers. They provide USB
connections to DSTREAM hardware units. They also support networking
for the simulation models.
SKIP_MERGE_MODULES
Set SKIP_MERGE_MODULES to 1 to stop third-party redistributables from being installed. For
example, Visual C++ libraries.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 14 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Installing and configuring Arm Development Studio
MANUFACTURERDIR
Specifies the Arm Development Studio installation directory. This is useful during a quiet
installation, where there is no user interaction during the installation. If not specified, Arm
Development Studio installs into the Program files/Arm directory.
For installations with user interaction, the installation directory is configured in one of the
dialog boxes.
• You must provide the location of the .msi file as an argument to msiexec.
• To display a full list of msiexec options, run msiexec /? from the command
line.
This example installs Arm Development Studio with no user interaction or display of progress. This
example includes the following msiexec standard options:
/i <installer_location\data\install.msi>
Specifies the full path name to the .msi installer file.
/qn
Specifies quiet mode with no user interface.
/l\*v<install.log>
Specifies that all outputs from the installation are written as verbose output to the
<install.log> file.
Procedure
1. Unzip the downloaded .zip file.
2. Run armds-<version>.msi to open the Arm Development Studio setup wizard.
3. Follow the on-screen instructions.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 15 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Installing and configuring Arm Development Studio
During installation, you might be prompted to install the Arm certificate that
allows device drivers to be installed. Arm recommends that you install these
drivers. They allow USB connections to DSTREAM hardware units. They also
support networking for the simulation models. These drivers are required to use
these features.
You can install multiple versions of Arm Development Studio on Linux platforms. To
do this, you must use different root installation directories.
Procedure
Run armds-<version>.sh and follow the on-screen instructions.
You can find more details and a full list of required libraries in Additional Linux
libraries.
Arm recommends that you run the post install setup scripts during the installation
process.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 16 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Installing and configuring Arm Development Studio
Next steps
To use the post install setup scripts after installation, with root privileges, run:
run_post_install_for_Arm_DS_IDE_<version>.sh
Device drivers and desktop shortcuts are optional features that are installed by this script. The
device drivers allow USB connections to debug hardware units, for example, the DSTREAM family.
The desktop menu is created using the http://www.freedesktop.org/ menu system on supported
Linux platforms.
The specific libraries that require installation depend on the distribution of Linux that you are
running. The dependency_check_linux-x86_64.sh script identifies libraries you must install. This
script is in <install_location>/sw/dependency_check.
If the required libraries are not installed, some of the Arm Development Studio tools
might fail to run. You might encounter error messages, such as:
• armcc: No such file or directory
• arm-linux-gnueabihf-gcc: error while loading shared libraries: libstdc++.so.6:
cannot open shared object file: No such file or directory
Required libraries
Arm Development Studio depends on the following libraries:
• libasound.so.2
• libatk-1.0.so.0
• libc.so.6 *
• libcairo.so.2
• libfontconfig.so.1
• libfreetype.so.6
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 17 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Installing and configuring Arm Development Studio
• libgcc_s.so.1 *
• libGL.so.1
• libGLU.so.1
• libgthread-2.0.so.0
• libgtk-x11-2.0.so.0
• libncurses.so.5
• libnsl.so.1
• libstdc++.so.6 *
• libusb-0.1.so.4
• libX11.so.6
• libXext.so.6
• libXi.so.6
• libXrender.so.1
• libXt.so.6
• libXtst.so.6
• libz.so.1 *
Some components also render using a browser library. Arm recommends that you install one of
these libraries to ensure all components render correctly:
• libwebkit-1.0.so.2
• libwebkitgtk-1.0.so.0
• libxpcom.so
Procedure
1. Locate your Arm Development Studio installation directory.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 18 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Installing and configuring Arm Development Studio
2. If you ran the optional post-install step during or after installation, up to three additional
configuration files are created outside of the install directory. Delete the following files if they
are present:
• /etc/udev/rules.d/ARM_debug_tools.rules
• /etc/hotplug/usb/armdebugtools
• /etc/hotplug/usb/armdebugtools.usermap
3. If you installed the optional desktop shortcuts during or after installation, you can also remove
them:
a) Locate the Arm Development Studio installation directory.
b) Run the following script: remove_menus_for_Arm_DevelopmentStudio_<version>.sh.
4. Delete the Arm Development Studio installation directory.
Related information
Install Arm Development Studio on Linux on page 16
To view license information in Arm Development Studio, select Help > Arm License Manager.
Related information
Add a license using Product Setup on page 19
Add a license using the Arm License Manager on page 21
Delete a FlexNet license on page 25
If you previously added a license for an Arm development tool that also licenses
Arm Development Studio, Development Studio is already licensed and this
procedure is not required.
• If you or your company has purchased Arm Development Studio, you need one of the
following:
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 19 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Installing and configuring Arm Development Studio
◦ For Arm user-based licensing, the license server address or an activation code.
◦ For FlexNet license management, the license file or the license server address and port
number.
• To obtain an evaluation license, you need an Arm account.
Procedure
1. Add your license:
Figure 2-1: Product Setup dialog box shown when you first open Arm Development Studio
• For Arm user-based licensing, select Manage Arm User-Based Licenses, and then click
Finish to open the Arm License Management Utility dialog box.
• For a FlexNet license server, select Add FlexNet product license, then click Next. Enter the
license server address and port number in the format <port number> @ <server address>,
then click Next.
• For a FlexNet license file, select Add FlexNet product license, then click Next. Select
License File, click Browse…, select the license file, then click Next.
• For an evaluation license:
a. Select Obtain evaluation license, then click Next.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 20 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Installing and configuring Arm Development Studio
Procedure
1. Click Help > Arm License Manager to display your license information in the Preferences
dialog box.
2. If there is an existing Development Studio license, the Preferences dialog box shows that a
license is active. For example:
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 21 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Installing and configuring Arm Development Studio
If you need to add a different type of license, deactivate the existing license:
• For user-based licensing, see the User-based Licensing User Guide.
• For FlexNet licensing, see Delete a FlexNet license.
3. If there is no existing Development Studio license or you deactivated the existing license, the
following Preferences dialog box is displayed:
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 22 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Installing and configuring Arm Development Studio
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 23 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Installing and configuring Arm Development Studio
• For Arm user-based licensing, select Manage Arm User-Based Licenses, then click Finish to
open the Arm License Management Utility dialog box.
• For a FlexNet license server, select Add FlexNet product license, then click Next. Enter the
license server address and port number in the format <port number> @ <server address>,
then click Next.
• For a FlexNet license file, select Add FlexNet product license, then click Next. Select
License File, click Browse…, select the license file, then click Next.
• For an evaluation license:
a. Select Obtain evaluation license, then click Next.
b. Log into your Arm account, then click Next.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 24 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Installing and configuring Arm Development Studio
Procedure
1. Click Help > Arm License Manager to view your license information.
2. Select the license you want to delete, then click Remove.
Licenses added using an environment variable are listed in this dialog box, but
cannot be removed. To remove these licenses, unset the environment variable.
Procedure
Launch the IDE in Japanese using one of the following methods:
◦ If your operating system locale is set as Japanese, the IDE automatically displays the translated
features.
◦ If your operating system locale is not set as Japanese, you must specify the -nl command-line
argument when launching the IDE:
armds_ide -nl ja
Arm Compiler for Embedded 6 does not support Japanese characters in source
files.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 25 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Installing and configuring Arm Development Studio
Procedure
1. In the Remote Systems view, click the Define a connection to remote system option on the
toolbar.
2. In the Select Remote System Type dialog box, expand the General group and select SSH Only.
Figure 2-5: Selecting a connection type
3. Click Next.
4. In Remote SSH Only System Connection, enter the remote target IP address or name in the
Host name field.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 26 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Installing and configuring Arm Development Studio
5. Click Next.
6. Verify if the Sftp Files, Configuration, and Available Services are what you require.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 27 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Installing and configuring Arm Development Studio
7. Click Next.
8. Verify if the Ssh Shells, Configuration, and Available Services are what you require.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 28 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Installing and configuring Arm Development Studio
9. Click Next.
10. Verify if the Ssh Terminals, Configuration, and Available Services are what you require.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 29 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Installing and configuring Arm Development Studio
Results
Your SSH connection is now set up. You can copy any required files from the local file system on to
the target file system. You can do this by dragging and dropping the relevant files into the Remote
Systems view.
Related information
Import the example projects on page 86
Debug Configurations - Connection tab
Debug Configurations - Files tab
Debug Configurations - Debugger tab
Debug Configurations - Environment tab
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 30 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Installing and configuring Arm Development Studio
Procedure
1. Open a terminal shell that is connected to the target.
2. In the Remote Systems view, right-click on Ssh Terminals.
3. Select Launch Terminal to open a terminal shell.
4. In the terminal shell, navigate to the directory where you copied the application, then execute
the required commands.
The following example shows the commands used to launch the Gnometris application.
export DISPLAY=ip:0.0
gdbserver :port gnometris
Where:
ip
is the IP address of the host to display the Gnometris application.
port
is the connection port between gdbserver and the application, for example 5000.
If the target has a display connected to it, you do not need to use the export
DISPLAY command.
If you want to build projects using a toolchain that is not installed with Arm Development Studio,
you must first register the toolchain you want to use. You can register toolchains:
• Using the Preferences dialog box in Arm Development Studio.
• Using the add_toolchain utility from the Arm Development Studio Command Prompt.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 31 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Installing and configuring Arm Development Studio
A variety of other compiler toolchains are available. To find other compiler toolchains, you can do
the following:
• Navigate to Arm Compiler for Embedded downloads for the latest Arm Compiler for Embedded
toolchain.
• Download a GCC toolchain from Linaro.
• Download the GNU Arm Embedded toolchain for Arm processors.
• If you are using Arm Development Studio 2021.1 or later, and want to use Arm Compiler 5, see
What should I do if I want to use a legacy release of Arm Compiler?.
When you register a toolchain, the toolchain is available for new and existing projects in Arm
Development Studio.
Related information
Registering a compiler toolchain using the Arm Development Studio IDE on page 32
Register a compiler toolchain using the Arm DS command prompt on page 35
Reconfigure existing projects to use a newly registered compiler toolchain on page 36
Configure a compiler toolchain for the Arm DS command prompt on Windows on page 36
Configure a compiler toolchain for the Arm DS command prompt on Linux on page 37
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 32 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Installing and configuring Arm Development Studio
Procedure
1. Open the Toolchains tab in the Preferences dialog box; Windows > Preferences > Arm DS >
Toolchains. Here, you can see the compiler toolchains that Arm DS currently recognizes,
Figure 2-10: Toolchains Preferences dialog box
2. Click Add and enter the filepath to the toolchain binaries that you want to use. Then click Next
to autodetect the toolchain properties.
3. After the toolchain properties are autodetected, click Finish to register the toolchain.
Alternatively, click Next to manually enter or change the toolchain properties, and then click
Finish.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 33 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Installing and configuring Arm Development Studio
Results
• The new toolchain is registered with Arm Development Studio.
• When you create a new project, Arm DS shows the new toolchain in the available list of
toolchains.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 34 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Installing and configuring Arm Development Studio
Related information
Reconfigure existing projects to use a newly registered compiler toolchain on page 36
Procedure
1. Open the Arm DS <version> Command Prompt, and enter add_toolchain <path>, where
<path> is the directory containing the toolchain binaries. The utility automatically detects the
toolchain properties.
2. The utility prompts whether you want to register the toolchain with the details it has detected.
If you want to change the details, the utility prompts for the details of the toolchain.
3. Restart Arm Development Studio. You must do this before you can use the toolchain in the Arm
DS environment.
Results
• The new toolchain is registered with Arm Development Studio.
• When you create a new project, Arm DS shows the new toolchain in the available list of
toolchains.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 35 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Installing and configuring Arm Development Studio
Related information
Reconfigure existing projects to use a newly registered compiler toolchain on page 36
Procedure
1. Select a new compiler toolchain to use with your project.
a) In the Project Explorer view, right-click your project and select Properties > C/C++ Build >
Tool Chain Editor.
b) Select the new toolchain under the Current toolchain drop-down menu.
c) Click Apply and Close.
2. After you change the toolchain, clean and rebuild the project.
a) In the Project Explorer view, select the project, right-click it and select Clean Project.
b) In the Project Explorer view, select the project, right-click it and select Build Project.
Procedure
1. To set a default compiler toolchain:
a) Select Start > All Programs > Arm DS Command Prompt.
b) To see the available compiler toolchains, enter select_default_toolchain.
c) From the list of available toolchains, select your default compiler toolchain.
2. To specify a compiler toolchain for the current session:
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 36 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Installing and configuring Arm Development Studio
Using this command overwrites the default compiler toolchain for the
current session.
c) From the list of available toolchains, select the one that you want to use for this session.
Procedure
1. To set a default compiler toolchain, run <install_directory>/bin/select_default_toolchain
and follow the instructions.
2. To specify a compiler toolchain for the current session, run <install_directory>/bin/
suite_exec --toolchain <toolchain_name>
To use the Arm® Compiler for Embedded toolchain in the current session, run:
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 37 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Installing and configuring Arm Development Studio
Procedure
1. At your operating system command prompt, enter: <armds_install_directory>/
bin/armds_ide -vmargs -Dosgi.configuration.area=<install_directory/sw/ide/
configuration> -Dosgi.configuration.cascaded=false.
On Windows, you must run armds_idec.exe from either the Arm DS Command
Prompt, or directly from the <install_directory>/bin directory. Do not run
the armds_idec.exe executable that is in the <install_directory>/sw/eclipse
directory.
2. Install your Eclipse plug-in using your preferred plug-in installation option, for example, the
Eclipse Marketplace.
3. Restart Arm Development Studio when prompted to do so.
Results
Your plug-ins are now installed into the Arm Development Studio <install_directory/sw/ide/
configuration> directory and are available to all users of the host workstation.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 38 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Installing and configuring Arm Development Studio
You can access the dynamic help in any view or dialog box by using the following:
• On Windows, use the F1 key
• On Linux, use the Shift+F1 key combination.
The following keyboard shortcuts are available when you connect to a target:
Commands view
You can use:
Ctrl+Space
Access the content assist for autocompletion of commands.
Enter
Execute the command that is entered in the adjacent field.
DOWN arrow
Navigate down through the command history.
UP arrow
Navigate up through the command history.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 39 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Installing and configuring Arm Development Studio
F9
Interrupt the target and stop the current application if it is running.
Related information
Commands view
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 40 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Introduction to Arm Debugger
From device bring-up to application debug, it can be used to develop code on an RTL simulator,
virtual platform, and hardware, to help get your products to market quickly.
Using Arm Debugger, you can debug bare-metal and Linux applications with comprehensive and
intuitive views, including synchronized source and disassembly, call stack, memory, registers,
expressions, variables, threads, breakpoints, and trace.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 41 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Introduction to Arm Debugger
AMP
Asymmetric Multi-Processing (AMP) system has multiple processors that may be different
architectures. See Debugging AMP Systems for more information.
Bare-metal
A bare-metal embedded application is one which does not run on an OS.
BBB
The old name for the MTB.
CADI
Component Architecture Debug Interface. Debuggers can use this deprecated API to control
models. Because this API is deprecated, Arm recommends that you use the Iris model
interface instead.
Configuration database
A configuration database is where Arm Debugger stores information about the processors,
devices, and boards it can connect to.
A configuration database exists as a series of .xml files, python scripts, .rvc files, .rcf files,
.sdf files, and other miscellaneous files.
Arm Development Studio comes with pre-configured support for a wide variety of devices.
This configuration database is in the <installation_directory>/sw/debugger/configdb/
directory. You can view these devices in the Debug Configuration dialog box in the Arm
Development Studio IDE.
The context of a process describes its current state, as defined principally by the call stack
that lists all the currently active calls.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 42 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Introduction to Arm Debugger
Because variables can have class, local, or global scope, the context determines which
variables are currently accessible. Every process has its own context. When execution of a
process stops, you can examine and change values in its current context.
CTI
The Cross Trigger Interface (CTI) combines and maps trigger requests, and broadcasts them
to all other interfaces on the Embedded Cross Trigger (ECT) sub-system. See Cross-trigger
configuration for more information.
DAP
The Debug Access Port (DAP) is a control and access component that enables debug access
to the complete SoC through system ports. See About the Debug Access Port for more
information.
Debugger
A debugger is software running on a host computer that enables you to make use of a debug
probe to examine and control the execution of software running on a debug target.
Debug agent
A debug agent is hardware or software, or both, that enables a host debugger to interact
with a target. For example, a debug agent enables you to read from and write to registers,
read from and write to memory, set breakpoints, download programs, run and single-step
programs, program flash memory, and so on.
Even though you might run an FVP on the same host as the debugger, it is
useful to think of it as a separate piece of hardware.
Also, during the early stages of product development, hardware emulators are used to verify
hardware and software designs for pre-silicon testing.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 43 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Introduction to Arm Debugger
Debug probe
A debug probe is a physical interface between the host debugger and hardware target. It acts
as a debug agent. A debug probe is normally required for bare-metal start/stop debugging
real target hardware, for example, using JTAG.
Examples include DSTREAM, DSTREAM-ST, and the ULINK family of debug and trace
probes.
DSTREAM
The Arm DSTREAM family of debug and trace units. For more information, see: DSTREAM
family
Arm Development Studio supports the Arm DSTREAM debug unit, but it is
discontinued and no longer available to purchase.
DTSL
Debug and Trace Services Layer (DTSL) is a software layer in the Arm Debugger stack.
DTSL is implemented as a set of Java classes which are typically implemented (and possibly
extended) by Jython scripts. A typical DTSL instance is a combination of Java and Jython.
Arm has made DTSL available for your own use so that you can create programs (Java or
Jython) to access/control the target platform.
DWARF
DWARF is a debugging format used to describe programs in C and other similar programming
languages. It is most widely associated with the ELF object format but it has been used with
other object file formats.
ELF
Executable and Linkable Format (ELF) is a common standard file format for executables,
object code, shared libraries, and core dumps.
ETB
Embedded Trace Buffer (ETB) is an optional on-chip buffer that stores trace data from
different trace sources. You can use a debugger to retrieve captured trace data.
ETF
Embedded Trace FIFO (ETF) is a trace buffer that uses a dedicated SRAM as either a circular
capture buffer, or as a FIFO. The trace stream is captured by an ATB input that can then be
output over an ATB output or the Debug APB interface. The ETF is a configuration option of
the Trace Memory Controller (TMC).
ETM
Embedded Trace Macrocell (ETM) is an optional debug component that enables
reconstruction of program execution. The ETM is designed to be a high-speed, low-power
debug tool that supports trace.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 44 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Introduction to Arm Debugger
ETR
Embedded Trace Router (ETR) is a CoreSight™ component which routes trace data to system
memory or other trace sinks, such as HSSTP.
FVP
Fixed Virtual Platform (FVP) enables development of software without the requirement for
actual hardware. The functional behavior of the FVP is equivalent to real hardware from a
programmers view.
Iris
Debuggers can use this API to control models.
ITM
Instruction Trace Macrocell (ITM) is a CoreSight component which delivers code
instrumentation output and specific hardware data streams.
jRDDI
The Java API implementation of RDDI.
Jython
An implementation of the Python language which is closely integrated with Java.
MTB
Micro Trace Buffer. This is used in the Cortex®-M0 and Cortex-M0+.
PTM
Program Trace Macrocell (PTM) is a CoreSight component which is paired with a core to
deliver instruction only program flow trace data.
RDDI
Remote Device Debug Interface (RDDI) is a C-level API which allows access to target debug
and trace functionality, typically through a DSTREAM box, or an Iris model.
Scope
The scope of a variable is determined by the point at which it is defined in an application.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 45 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Introduction to Arm Debugger
TPIU
Trace Port Interface Unit (TPIU) is a CoreSight component which delivers trace data to an
external trace capture device.
TMC
The Trace Memory Controller (TMC) enables you to capture trace using:
• The debug interface such as 2-pin serial wire debug.
• The system memory such as a dynamic Random Access Memory (RAM).
• The high-speed links that already exist in the System-on-Chip (SoC) peripheral.
◦ Halt heterogeneous cores simultaneously to allow whole system debug at a particular point
in time.
If you are using an SoC that is supported out-of-the-box with Arm Debugger, select the correct
platform (SoC) in the Debug Configuration dialog box to configure a debug connection. If you
are using an SoC that is not supported by Arm Debugger by default, then you must first define
a custom platform in Arm Debugger's configuration database using the Platform Configuration
Editor tool.
For all platforms, whether built-in or manually created, you can use the Platform Configuration
Editor (PCE) to easily define the debug topology between various components available on the
platform. See the Platform Configuration Editor topic for details.
Related information
Debugging SMP systems on page 47
Debugging AMP Systems on page 50
Debugging big.LITTLE Systems on page 51
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 47 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Introduction to Arm Debugger
• All processors must have identical debug hardware. For example, the number of hardware
breakpoint and watchpoint resources must be identical.
• Breakpoints and watchpoints must only be set in regions where all processors have identical
physical and virtual memory maps. Processors with separate instances of identical peripherals
mapped to the same address are considered to meet this requirement. Private peripherals of
Arm multicore processors is a typical example.
Targets that support SMP debugging have SMP mentioned against them.
Once connected to your target, use the Debug Control view to work with all the cores in your SMP
system.
For image loading, this means that the image code and data are written to memory once, through
one of the processors, and are assumed to be accessible through the other processors at the same
address because they share the same memory.
For symbol loading, this means that debug information is loaded once and is available when
debugging any of the processors.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 48 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Introduction to Arm Debugger
For instruction level single-stepping commands, stepi and nexti, the currently selected processor
steps one instruction.
The exception to this is when a nexti operation is required to step over a function call, in which
case, the debugger sets a breakpoint and then runs all processors. All other stepping commands
affect all processors.
Depending on your system, there might be a delay between different cores running or stopping.
This delay can be very large because the debugger must run and stop each core individually.
However, hardware cross-trigger implementations in most SMP systems ensure that the delays are
minimal and are limited to a few processor clock cycles.
In rare cases, one processor might stop, and one or more of the other processors might not
respond. This can occur, for example, when a processor running code in secure mode has
temporarily disabled debug ability. When this occurs, the Debug Control view displays the
individual state of each processor, running or stopped, so you can see which ones have failed to
stop. Subsequent run and step operations might not operate correctly until all the processors stop.
Breakpoints or watchpoints can be configured for one or more processors by selecting the required
processor in the relevant Properties dialog box. Alternatively, you can use the break-stop-on-cores
command. This feature is not available for signals.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 49 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Introduction to Arm Debugger
Trace
If you are using a connection that enables trace support, you can view trace for each of the
processors in your system using the Trace view.
By default, the Trace view shows trace for the processor that is currently selected in the Debug
Control view. Alternatively, you can choose to link a Trace view to a specific processor by using the
Linked: context toolbar option for that Trace view. Creating multiple Trace views linked to specific
processors enables you to view the trace from multiple processors at the same time.
The indexes in the different Trace views do not necessarily represent the same point
in time for different processors.
For example, a Cortex®-A520 device coupled with a Cortex-M55 combines the benefits of an
application processor running Linux with a microcontroller running an Real-Time Operating System
(RTOS) that provides low-latency interrupts. These types of system are often found in industrial
applications where a rich user interface might need to interact closely with a safety-critical control
system, combining multiple cores into an integrated SoC for efficiency gains.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 50 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Introduction to Arm Debugger
You can connect to a system in which there is a cluster or big.LITTLE™ subsystem working in SMP
mode (for example, running Linux) with extra processors working in AMP mode (for example,
running their own bare-metal software or an RTOS). Arm Debugger is capable of supporting these
devices by just connecting the debugger to each core or subsystem separately.
The Heterogeneous system debug with Arm Development Studio tutorial provides an example of
the setup and debug of an AMP system.
Awareness for big.LITTLE configurations is built into Arm® Debugger, allowing you to establish a
bare-metal, Linux kernel, or Linux application debug connection, just as you would for a single core
processor.
For the software required to enable big.LITTLE support in your own OS, visit the
big.LITTLE Linaro git repository.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 51 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Introduction to Arm Debugger
The integrated suite of tools in Arm Development Studio enables rapid development of optimal
code for your target device.
For Linux applications, communication between the debugger and the debugged application is
achieved using gdbserver. See Configuring a connection to a Linux application using gdbserver for
more information.
Related information
Configuring a connection to a Linux kernel on page 119
About debugging shared libraries
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 52 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Introduction to the IDE
It includes:
Project Explorer
The project explorer enables you to perform various project tasks such as adding or removing
files and dependencies to projects, importing, exporting, or creating projects, and managing
build options.
Editors
Editors enable you to read, write, or modify C/C++ or Arm assembly language source files.
Perspectives and views
Perspectives provide customized views, menus, and toolbars to suit a particular type of
environment. Arm Development Studio uses the Development Studio perspective by
default. To switch perspectives, from the main menu, select Window > Perspective > Open
Perspective.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 53 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Introduction to the IDE
1. The main menu and toolbar are both located at the top of the IDE window. Other toolbars, that
are associated with specific features, are located at the top of each perspective or view.
2. Project Explorer view to create, build, and manage your projects.
3. Editor view to inspect and modify the content of your source code files. The tabs in the editor
area show the files that are currently open for editing.
4. During a debug session this area typically shows the Registers and Breakpoints views. You can
drag and drop other views into this area.
5. Debug Control view to create and control debug connections.
6. During a debug session this area typically shows views that are associated with debug inputs
and outputs, such as the Commands and Console views.
On exit, your settings save automatically. When you next open Arm Development Studio, the
window returns to the same perspective and views.
For further information on a view, click inside it and press F1 to open the Help view.
Related information
Introduction to the IDE on page 53
Perspectives in Arm Development Studio
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 54 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Introduction to the IDE
When you launch Arm Development Studio for the first time, the Preferences Wizard takes you
through the process of setting up the IDE.
This wizard presents the most commonly changed Preferences to customize for your requirements.
These include specifying the start-up workspace location, selecting a theme, and tweaking the code
editing format.
• If you have upgraded from a previous version of Arm Development Studio and
had your workspace preferences already set up, your preferences remain the
same.
• These preferences are only saved in the current workspace. To copy your
preferences to another workspace, select File > Export... to open the Export
wizard. Then select General > Preferences and choose the location you want to
export your preferences to.
• You can click Apply and Close at any point during your wizard. The Preferences
Wizard applies changes up to where you have modified the options and leaves
the rest of the settings as default.
• There are more IDE configuration options in the Preferences dialog which
allow you to make further in-depth changes to your IDE settings. For example,
extra code formatting and syntax highlighting options. To open the Preferences
dialog, from the main menu, select Window > Preferences.
• You can click Skip and ignore the Preferences Wizard and return to the wizard
later to make changes. To restart the wizard later, in the Preferences dialog,
select Arm DS > General > Start Preferences Wizard.
• To disable the Preferences Wizard when you launch Arm Development Studio,
add ARM_DS_DISABLE_PREFS_WIZARD as an environment variable in your operating
system.
• When switching Arm Development Studio between the light and dark themes,
to apply your selection you must restart Arm Development Studio.
Related information
Installing and configuring Arm Development Studio on page 12
Licensing Arm Development Studio on page 19
Introduction to the IDE on page 53
Language settings on page 25
Preferences dialogue box
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 55 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Introduction to the IDE
Procedure
1. Click the + button in the area you want to add a view.
Figure 4-2: Adding a view in an area
2. Choose a view to add, or click Other… to open the Show View dialog box to see a complete list
of available views.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 56 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Introduction to the IDE
Results
The view opens in the selected area.
Related information
Arm Debugger perspectives and views
Arm recommends that you select a dedicated workspace folder for your projects.
If you select an existing folder containing resources that are not related to your
projects, you cannot access them in Arm Development Studio. These resources
might also cause a conflict later when you create and build projects.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 57 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Introduction to the IDE
Procedure
1. Select File > Switch Workspace > Other.... The Eclipse Launcher dialog box opens.
Figure 4-4: Workspace Launcher dialog box
Results
Arm Development Studio relaunches in the new workspace.
Procedure
1. Go to Window > Perspective > Open Perspective > Other.... This opens the Open Perspective
dialog box.
2. Select the perspective that you want to open, and click OK.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 58 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Introduction to the IDE
Results
Your perspective opens in the workspace.
Related information
Arm Debugger perspectives and views
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 59 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Introduction to the IDE
You can use the Arm Development Studio command prompt to perform operations such as:
• Registering and configuring a compiler toolchain.
• Selecting and using a compiler.
• Running a model.
• Launching Arm Streamline.
• Importing, building, and cleaning Eclipse projects and μVision® projects.
• Configuring Arm Debugger.
• Configuring a connection to a built-in Fixed Virtual Platform (FVP).
• Batch updating firmware for the DSTREAM family of products.
Procedure
Launch the command prompt for your system:
On Windows:
◦ Select Start > All Programs > Arm Development Studio > Arm Development Studio
Command Prompt.
On Linux:
1. Open a new terminal in your preferred shell.
2. Change directory to the bin directory inside your Arm Development Studio installation
directory. For example: cd /opt/arm/developmentstudio-2020.0/bin.
3. Run ./suite_exec.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 61 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Introduction to the IDE
Related information
Debugging code on page 106
Configuring a connection from the command-line to a built-in FVP on page 107
Register a compiler toolchain using the Arm DS command prompt on page 35
Run the Arm Development Studio IDE from the command-line to clean, build, and import projects
on page 81
Running Arm Debugger from the command-line and using scripts
The following commands run the Arm Development Studio IDE from the command prompt:
• On Windows: armds_idec.exe
• On Linux: armds_ide
There are two headless applications provided with Arm Development Studio:
• Use com.arm.cmsis.pack.project.headlessbuild to clean, build, and import Eclipse projects.
• Use com.arm.cmsis.pack.uv.headlessuvimport to clean, build, and import μVision® projects.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 62 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Introduction to the IDE
Option Description
-build <projectName>[/<configName>] | all Build the project with the specified name, or all projects in your
workspace.
Use this option multiple times to clean and build multiple projects.
-cmsisRoot <path> Set the path to the CMSIS Packs root directory
-help Prints the list of available arguments.
Related information
Launch the Arm Development Studio command prompt on page 59
Run the Arm Development Studio IDE from the command-line to clean, build, and import projects
on page 81
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 63 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Projects and examples in Arm Development Studio
Projects are top level folders in your workspace that contain related files and sub-folders. A project
must exist in your workspace before you add a new file or import an existing file.
You can import resources from existing projects and export resources to use with tools external to
Arm Development Studio.
Bare metal projects require a software license for Arm® Compiler for Embedded to
successfully build an ELF image.
Bare-metal Executable
Uses Arm Compiler for Embedded to build a bare-metal executable ELF image.
Bare-metal Static library
Uses Arm Compiler for Embedded to build a library of ELF object format members for a bare-
metal project.
It is not possible to debug or run a stand-alone library file until it is linked into
an image.
Executable
Uses the GNU Compilation Tools to build a Linux executable ELF image.
Shared Library
Uses the GNU Compilation Tools to build a dynamic library for a Linux application.
Static library
Uses the GNU Compilation Tools to build a library of ELF object format members for a Linux
application.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 64 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Projects and examples in Arm Development Studio
It is not possible to debug or run a stand-alone library file until it is linked into
an image.
Makefile project
Creates a project that requires a makefile to build the project. However, Eclipse does not
automatically create a makefile for an empty Makefile project. You can write the makefile
yourself or modify and use an existing makefile.
Build configurations
By default, the new project wizard provides two separate build configurations:
Debug
The debug target is configured to build output binaries that are fully debuggable, at the
expense of optimization. It configures the compiler optimization setting to minimum (level 0),
to provide an ideal debug view for code development.
Release
The release target is configured to build output binaries that are highly optimized, at the
expense of a poorer debug view. It configures the compiler optimization setting to high (level
3).
In all new projects, the Debug configuration is automatically set as the active configuration. You can
change this in the C/C++ Build Settings panel of the Project Properties dialog box.
C project
This does not select a source language by default and leaves this decision up
to the compiler. Both GCC and Arm Compiler for Embedded default to C for
.c files and C++ for .cpp files.
C++ project
Selects C++ as the source language by default, regardless of file extension.
In both cases, the source language for the entire project a source directory, or
individual source file can be configured in the build configuration settings.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 65 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Projects and examples in Arm Development Studio
Procedure
1. Select File > New > Project... from the main menu.
2. Expand the C/C++ group, select either C Project or C++ Project, and click Next.
C project
This does not select a source language by default and leaves this decision
up to the compiler. Both GCC and Arm Compiler for Embedded default to
C for .c files and C++ for .cpp files.
C++ project
Selects C++ as the source language by default, regardless of file extension.
In both cases, the source language for the entire project, a source directory or
individual source file can be configured in the build configuration settings.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 66 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Projects and examples in Arm Development Studio
6. Select a Toolchain.
7. Click Finish to create your new project.
Results
You can view the project in the Project Explorer view.
Arm® Development Studio IDE provides an incremental build that applies the selected build
configuration to resources that have changed since the last build. Another type of build is the
Clean build that applies the selected build configuration to all resources, discarding any previous
build states.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 67 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Projects and examples in Arm Development Studio
Automatic
This is an incremental build that operates over the entire workspace and can run
automatically when a resource is saved. This setting must be enabled for each project by
selecting Build on resource save (Auto build) in the Behaviour tab. By default, this behavior
is not selected for any project.
You must also ensure that Build Automatically is selected from the Project menu. By default,
this menu option is selected.
Manual
This is an incremental build that operates over the entire workspace on projects with Build
(Incremental build) selected. By default, this behavior is selected for all projects.
You can run an incremental build by selecting Build All or Build Project from the Project
menu.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 68 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Projects and examples in Arm Development Studio
Manual builds do not save before running so you must save all related files
before selecting this option! To save automatically before building, you
can change your default settings by selecting Preferences... > General >
Workspace from the Window menu.
Clean
This option discards any previous build states including object files and images from the
selected projects. The next automatic or manual build after a clean, applies the selected build
configuration to all resources.
You can run a clean build on either the entire workspace or specific projects by selecting
Clean… from the Project menu. You must also ensure that Clean is selected in the C/C++
Build > Behaviour tab of the Preferences dialog box. By default, this behavior is selected for
all projects.
Build order is a feature where inter-project dependencies are created and a specific build order
is defined. For example, an image might require several object files to be built in a specific order.
To do this, you must split your object files into separate smaller projects, reference them within a
larger project to ensure they are built before the larger project. Build order can also be applied to
the referenced projects.
Procedure
1. Create a Makefile project:
a) Select File > New > Project... from the main menu.
b) Expand the C/C++ group, select Makefile Project with Existing Code, and click Next.
c) Enter a project name and enter the location of your existing source code.
d) Select the toolchain that you want to use for Indexer Settings. Indexer Settings provide
source code navigation in the Arm Development Studio IDE.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 69 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Projects and examples in Arm Development Studio
e) Click Finish to create your new project. The project and source files are visible in the
Project Explorer view.
2. Create a Makefile:
a) Before you can build the project, you need to have a Makefile that contains the
compilation tool settings. The easiest way to create one is to copy the Makefile from an
example project, and paste it into your new project.
b) Edit the Makefile for your new project.
c) Right-click the project and then select Properties > C/C++ Build to access the build
settings. In the Builder Settings tab, check that the Build directory points to the location of
the Makefile.
3. Add any other source files you need to the project.
4. Build the project. In the Project Explorer view, right-click the project and select Build Project.
Related information
Creating an empty Makefile project on page 70
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 70 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Projects and examples in Arm Development Studio
Procedure
1. Create a new project:
a) Select File > New > Project... from the main menu.
b) Expand the C/C++ group, select either C Project or C++ Project, and click Next.
c) Enter a project name.
d) Leave the Use default location option selected so that the project is created in the default
folder shown. Alternatively, deselect this option and browse to your preferred project
folder.
e) Expand the Makefile project group.
f) Select Empty project in the Project type panel.
g) Select the toolchain that you want to use when building your project. If your project is for
an Arm Linux target, select the appropriate GCC toolchain. You might need to download a
GCC toolchain if you have not done so already.
h) Click Finish to create your new project. The project is visible in the Project Explorer view.
2. Create a Makefile, and then edit:
a) Before you can build the project, you must have a Makefile that contains the compilation
tool settings. The easiest way to create one is to copy the Makefile from the example
project, hello and paste it into your new project. The hello project is in the Linux examples
provided with Arm® Development Studio.
b) Locate the line that contains OBJS = hello.o.
c) Replace hello.o with the names of the object files corresponding to your source files.
d) Locate the line that contains TARGET =hello.
e) Replace hello with the name of the target image file corresponding to your source files.
f) Save the file.
g) Right-click the project and then select Properties > C/C++ Build. In the Builder Settings
tab, ensure that the Build directory points to the location of the Makefile.
3. Add your C/C++ files to the project.
Next steps
Build the project. In the Project Explorer view, right-click the project and select Build Project.
Related information
Create a new Makefile project with existing code on page 69
Procedure
1. Access the New Source File wizard using one of the following methods:
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 71 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Projects and examples in Arm Development Studio
• In the Project Explorer, right-click on the project and select New > Source File to open the
New Source File wizard.
• From the main menu bar, select File > New > Other > C/C++ > Source File. Then click
Next.
2. Update the fields in the New Source File dialog box as required:
• Source folder
Enter the source folder where the new source file will be saved. If this field is not already
populated with the required source folder, click Browse… and select a source folder from
the required project.
• Source file
Enter a name for the new source file including the file extension.
• Template
Select a source file template from the drop-down list. The default options are:
◦ <None>
◦ Default C++ source template
◦ Default C++ test template
◦ Default C source template
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 72 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Projects and examples in Arm Development Studio
The default templates only provide basic metadata about the newly created file, that is, the
author and the date it was created.
To use your own source file template, click Configure and the Code Templates preference
panel opens, where you can add or configure your own templates.
3. Click Finish.
Results
The new source file is visible in the Project Explorer view.
Related information
Perspectives and Views
Eclipse online documentation: Code templates
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 73 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Projects and examples in Arm Development Studio
Procedure
You can add existing source files to your project using one of the following methods:
◦ You can create source files and then add them to the project:
1. Create files on your local system.
2. Drag and drop the files into the project folder structure in the Project Explorer view of Arm
Development Studio.
In the File Operation dialog box, select whether you want to Copy files or Link to Files.
Click OK.
◦ Import existing source files:
1. Select File > Import > General > File System.
2. In the File system dialog box:
a. In From directory, enter directory containing the existing source files.
b. Select the required files in the list of files for the selected directory.
c. In Into Folder, click Browse… and select the required project folder.
d. Ensure the Options are set as you require.
e. Click Finish.
Results
The source file is visible in the Project Explorer view. If the files do not show in the project, update
the views in Arm Development Studio by selecting File > Refresh from the main menu.
Related information
Perspectives and Views
Eclipse online documentation: Code templates
Select Import… from the File menu to display the Import wizard.
With the exception of the Existing Projects into Workspace wizard, files and folders are copied
into your workspace when you use the Import wizard. To create a link to an external file or project
sub-folder you must use the New File or New Folder wizard.
Select Export… from the File menu to display the Export wizard.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 75 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Projects and examples in Arm Development Studio
The procedure is the same for exporting a complete project, a source file, and a project sub-folder.
If you want to create a zip file you can use the Archive File wizard, or alternatively you can use
the File System wizard. Both options produce a dialog box similar to the example shown here.
Using the options provided you can select the required resources and specify the relevant options,
filename, and destination path.
Procedure
1. Select File > Import.
2. In the Import dialog box, select General > Existing Projects into Workspace. Click Next.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 76 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Projects and examples in Arm Development Studio
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 77 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Projects and examples in Arm Development Studio
4. In the Projects panel, select the projects that you want to import. You cannot import a project
with the same name as an existing project.
5. Select Copy projects into workspace if required, or deselect to create links to your existing
projects and associated files.
6. If you are using working sets to group your projects then you can:
a) Select Add project to working sets.
b) Click Select.
c) Select an existing working set or create a new one and then select it.
d) Click OK.
7. Click Finish.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 78 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Projects and examples in Arm Development Studio
If your existing project contains project settings from an older version of the
build system, you are given the option to update your project. Using the latest
version means that you can access all the latest toolchain features.
Results
The imported project is visible in the Project Explorer view.
If you want to use an existing resource from your file system in one of your projects, the
recommended method is to use the Import wizard. To do this, select Import… from the File menu.
If you want to use a resource externally, the recommended method is to use the Export wizard. To
do this, select Export… from the File menu.
There are several options available in the import and export wizards:
General
This option enables you to import and export the following:
• Files from an archive zip file.
• Complete projects.
• Selected source files and project sub-folders.
• Preference settings.
C/C++
This option enables you to import the following:
• C/C++ executable files.
• C/C++ project settings.
• Existing code as Makefile project.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 79 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Projects and examples in Arm Development Studio
For information on the other options not listed here, use the dynamic help.
• There are many different ways to share projects and files, for example, using a
source control tool. This topic covers the general principles of sharing projects
and files using Arm Development Studio, and not the specifics of any particular
tool.
• To share files, it is recommended to do so at the level of the project and not
the workspace. Your source files in Arm Development Studio are organized into
projects, and projects exist in your workspace. A workspace contains many files,
including files in the .metadata directory, that are specific to an individual user
or installation.
In each project, the files that must be shared beyond just your source code are:
• .project - Contains general information about the project type, and the Arm Development
Studio plug-ins to use to edit and build the project.
• .cproject - Contains C/C++ specific information, including compiler settings.
Arm Development Studio places built files into the project directory, including auto-generated
makefiles, object files, and image files. Not all files have to be shared. For example, sharing an auto-
generated makefile might be useful to allow building the project outside of Arm Development
Studio, but if projects are only built in Arm Development Studio then this is not necessary.
You must be careful when creating and configuring projects to avoid hard-coded references to tools
and files outside of Arm Development Studio that might differ between users.
To ensure that files outside of Arm Development Studio can be referenced in a user agnostic way,
use the ${workspace_loc} built-in variable or custom environment variables.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 80 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Projects and examples in Arm Development Studio
Procedure
1. Right-click on the project in the Project Explorer view, and select Properties.
2. Expand C/C++ Build and select Tool Chain Editor.
3. Select the toolchain from the Current toolchain drop-down list and click OK.
Procedure
1. Launch the command-line console.
• On Windows, select Start > All Programs > Arm Development Studio > Arm DS Command
Prompt.
• On Linux, run <install_directory>/bin/suite_exec <shell> to open a shell.
2. Run armds_idec.exe (on Windows) or armds_ide (on Linux) with the necessary options.
On Windows, you must run armds_idec.exe from either the Arm DS Command
Prompt, or directly from the <install_directory>/bin directory. Do not run
the armds_idec.exe executable that is in the <install_directory>/sw/eclipse
directory.
For example:
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 81 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Projects and examples in Arm Development Studio
Example 5-1: Build and clean projects with the Arm Development Studio command-line
• On Linux, clean and build the Debug configurations of multiple Eclipse projects in your
workspace.
• On Linux, import multiple μVision projects, then clean and build all projects in your workspace.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 82 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Projects and examples in Arm Development Studio
Related information
Launch the Arm Development Studio command prompt on page 59
Headless tools in the Arm Development Studio command prompt on page 62
Procedure
1. In the Project Explorer view, right-click the source file or project and select Properties.
2. Expand C/C++ Build and select Settings.
3. The Configuration panel shows the active configuration. To create a new build configuration or
change the active setting, click Manage Configurations….
4. The compilation tools available for the current project, and their respective build configuration
panels, are displayed in the Tool Settings tab. Click on this tab and configure the build as
required.
Makefile projects do not use these configuration panels. The Makefile must
contain all the required compilation tool settings.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 83 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Projects and examples in Arm Development Studio
5. Click OK.
Results
The updated settings for your build configuration are saved.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 84 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Projects and examples in Arm Development Studio
• Bare-metal software development examples for Armv8 including Scalable Vector Extension (SVE)
and SVE2 that show:
◦ Compilation with Arm Compiler for Embedded 6.
◦ Compilation with GCC bare-metal compiler.
◦ Armv8 bare-metal debug.
An Armv7-A Linux distribution containing source files, header files, libraries, and pre-built
images for running and rebuilding the Armv7-A Linux examples is provided. This distribution is
available from the Arm downloads page.
• Examples for Keil® RTX version 5 RTX Real-Time Operating System (RTX-RTOS) are located in
the <examples_directory>/RTX5_examples.zip archive file.
• Software examples for Arm Debugger's Debug and Trace Services Layer (DTSL). The examples
are located in the <examples_directory>/DTSL_examples.zip archive file.
• Jython examples for Arm Debugger. The examples are located in the <examples_directory>/
Jython_examples.zip archive file.
You can extract these examples to a working directory and build them from the command-line,
or you can import them into Arm Development Studio IDE using the import wizard. All examples
provided with Arm Development Studio contain a pre-configured IDE launch script that enables
you to easily load and debug example code on a target.
Each example provides instructions on how to build, run, and debug the example code. You can
access the instructions from the main index, <examples_directory>/docs/index.html.
Related information
Import the example projects on page 86
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 85 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Projects and examples in Arm Development Studio
Procedure
1. Launch Arm Development Studio IDE.
2. Arm recommends that you create another workspace for example projects, so that they remain
separate from your own projects. To do this, select File > Switch Workspace > Other > Browse
> Make new folder, and enter a suitable name.
Result: Arm Development Studio IDE relaunches.
3. In the main menu, select File > Import....
4. Expand the Arm Development Studio group, select Examples and Programming Libraries and
click Next.
Figure 5-11: Import dialog box
5. Select the examples and programming libraries you want to import. If a description for the
selected example exists, you can view it in the Description pane.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 86 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Projects and examples in Arm Development Studio
6. Click Finish.
Results
You can browse the imported examples in the Project Explorer.
Each example contains a readme.html which explains how you can work with the example.
Related information
Working sets on page 87
The Project Explorer view usually displays a full list of all your projects associated with the current
workspace. If you have a lot of projects it can be difficult to navigate through the list to find the
project that you want to use.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 87 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Projects and examples in Arm Development Studio
To make navigation easier, group your projects into working sets. You can select one or more
working sets at the same time, or you can use the Project Explorer View Menu to switch between
one set and another. To return to the original view, select the Deselect Working Sets options in the
View Menu.
Working sets are also useful to refine the scope of a search or build projects in a specific working
set.
Related information
Create a working set on page 88
Change the top-level element when displaying working sets on page 91
Deselect a working set on page 91
Procedure
1. Click the View Menu hamburger icon in the Project Explorer view toolbar.
2. Select the Select Working Set… option.
3. In the Select Working Set dialog box, click New….
Figure 5-13: Creating a new working set
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 88 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Projects and examples in Arm Development Studio
Figure 5-14: Selecting the resource type for the new working set
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 89 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Projects and examples in Arm Development Studio
7. Click Finish.
8. If required, repeat these steps to create more working sets.
9. In the Select Working Set dialog box, select the working sets that you want to display in the
Project Explorer view.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 90 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Projects and examples in Arm Development Studio
Results
The filtered list of projects are displayed in the Project Explorer view. Another feature of working
sets that can help with navigation is the option to change the top level element in the Project
Explorer view.
Procedure
1. In the Project Explorer view toolbar, click the View Menu hamburger icon.
2. Select Top Level Elements from the context menu.
3. Select either Projects or Working Sets.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 91 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Projects and examples in Arm Development Studio
Procedure
1. Click on the View Menu icon in the Project Explorer view toolbar.
2. Select Deselect Working Set from the context menu.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 92 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Writing code
6. Writing code
Describes how to use the editors when developing a project for an Arm target.
To do this, in the Project Explorer view, select the updated project, sub-folder, or file and click
File > Refresh. Alternatively, enable automatic refresh options under General > Workspace in the
Preferences dialog box. Configure your automatic refresh settings by selecting either Refresh using
native hooks or polling or Refresh on access options.
When you open a file in Development Studio, a new editor tab appears with the name of the file.
An edited file displays an asterisk (*) in the tab name to show that it has unsaved changes.
To view two or more editor tabs side-by-side, click on one of the tabs and drag it over an editor
border.
In the left-hand margin of the editor tab you can find a vertical bar that displays markers relating to
the active file.
Navigating
There are several ways to navigate to a specific resource in Development Studio. You can use
the Project Explorer view to open a resource by browsing through the resource tree and double-
clicking on a file. An alternative is to use the keyboard shortcuts or use the options from the
Navigate menu.
Searching
To locate information or specific code contained in one or more files in Development Studio, you
can use the options from the Search menu. Textual searching with pattern matching and filters to
refine the search fields are provided in a customizable Search dialog box. You can also open this
dialog box from the main workbench toolbar.
Content assist
The C/C++ editor, Arm assembler editor, and the Arm Debugger Commands view provide content
assistance at the cursor position to auto-complete the selected item. Using the Ctrl+Space
keyboard shortcut produces a small dialog box with a list of valid options to choose from. You can
filter the list by partially typing a few characters before using the keyboard shortcut. From the list
you can use the Arrow Keys to select the required item and then press the Enter key to insert it.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 93 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Writing code
Bookmarks
You can use bookmarks to mark a specific position in a file or mark an entire file so that you can
return to it quickly. To create a bookmark, select a file or line of code that you want to mark and
select Add Bookmark from the Edit menu. The Bookmarks view displays all the user defined
bookmarks. To access the bookmarks, select Window > Show View > Bookmarks from the main
menu. If the Bookmarks view is not listed then select Others… for an extended list.
To delete a bookmark, open the Bookmarks view, click on the bookmark that you want to delete,
and select Delete from the Edit menu.
Embedded assembler in C/C++ files is supported by Arm® Compiler for Embedded but this editor
does not support it and so an error is displayed. This type of code is Arm-specific and accepted
Eclipse behavior so you can ignore the syntax error.
If this is not the default editor, right-click on a source file in the Project Explorer view and select
Open With > C/C++ Editor from the context menu.
See the C/C++ Development User Guide for more information. Select Help > Help Contents from
the main menu.
If this is not the default editor, right-click on your source file in the Project Explorer view and select
Open With > Arm Assembler Editor from the context menu.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 94 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Writing code
Shortcut Description
Editor focus The following options change the editor focus:
• Outline View provides a list of all areas and labels in the active
file. Click on an area or label to move the focus of the editor to
the position of the selected item.
• Select a label from a branch instruction and press F3 to move
the focus of the editor to the position of the selected label.
Formatter activation Press Ctrl+Shift+F to activate the formatter settings.
Block comments Block comments are enabled or disabled by using Ctrl+Semicolon.
Select a block of code and apply the keyboard shortcut to change
the commenting state.
If this is not the default editor, right-click on your source file in the Project Explorer view and select
Open With > ELF Content Editor from the context menu.
The ELF content editor displays one or more of the following tabs depending on the selected file
type:
Header
Form view showing the header information.
Sections
Tabular view showing the breakdown of all section information.
Segments
Tabular view showing the breakdown of all segment information.
Symbol Table
Tabular view showing the breakdown of all symbols.
Disassembly
Textual view of the disassembly with syntax highlighting.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 95 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Writing code
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 96 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Writing code
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 97 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Writing code
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 98 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Writing code
There are several keyboard combinations that you can use to navigate around the output:
• Use Ctrl+F to open the Find dialog box to search the output.
• Use Ctrl+Home to move the focus to the beginning of the output.
• Use Ctrl+End to move the focus to the end of the output.
• Use Page Up and Page Down to navigate through the output one page at a time.
You can also right-click in the Disassembly view and select the Copy and Find options in the
context menu.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 99 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Writing code
It provides a text editor, a hierarchical tree, and a graphical view of the regions and output sections
of an image. You can change the default syntax formatting and color schemes in the Preferences
dialog box.
If the scatter file editor is not the default editor, right-click on your source file in the Project
Explorer view and select Open With > Scatter File Editor from the context menu.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 100 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Writing code
Memory Map
A graphical view showing load and execute memory maps. Although these maps are not
editable, you can select a load region to show the related memory blocks in the execution
regions.
The scatter file editor also provides a hierarchical tree with associated toolbar and context menus
using the Outline view. Clicking on a region or section in the Outline view moves the focus of the
editor to the relevant position in your code. If this view is not visible, select Show View > Outline
from the Window menu.
The linker documentation for Arm® Compiler for Embedded describes in more detail
how to use scatter files.
Before you can use a scatter file you must add the --scatter=file option to the project in the C/
C++ Build > Settings > Tool settings > Arm Linker > Image Layout panel of the Properties dialog
box.
Procedure
1. Open an existing project, or create a new project.
2. In your project, add a new empty text file with the extension .scat. For example scatter.scat.
3. In the Outline view, click the Add load region toolbar icon, or right-click and select Add load
region from the context menu.
4. Enter a load region name, for example, LR1.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 101 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Writing code
5. Click OK.
6. Modify the load region as shown in the following example.
LR1 0x0000 0x8000
{
LR1_er1 0x0000 0x8000
{
* (+RO)
}
LR1_er2 0x10000 0x6000
{
* (+RW,+ZI)
}
}
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 102 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Writing code
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 103 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Writing code
Procedure
1. Select File > Import > Scatter File Editor > Memory from a BCD File.
2. Enter the location of the BCD file, or click Browse… to select the folder.
3. Select the file that contains the memory map that you want to import.
4. If you want to add specific memory regions to an existing scatter file, select Add to current
scatter file.
The scatter file must be open and active in the editor view before you can use
this option.
5. If you want the wizard to create a new file with the same name as the BCD file but with a
.scat file extension, select Create new scatter file template.
6. Select the destination project folder.
7. By default, all the memory regions are selected. Edit the selections and table content as
required.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 104 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Writing code
Figure 6-8: Memory block selection for the scatter file editor
8. Click Finish.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 105 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Debugging code
7. Debugging code
You can set up connections to debug bare-metal targets, Linux kernel, and Linux applications. You
can also use the Snapshot View feature to view previously captured application states.
Snapshot Viewer
Use the Snapshot Viewer to analyze and debug a read-only representation of the application state
of your processor using previously captured data. This is useful in scenarios where interactive
debugging with a target is not possible. For more information, see Working with the Snapshot
Viewer.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 106 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Debugging code
Procedure
1. Open the Arm Development Studio command prompt:
• On Windows, select Start > All Programs > Arm Development Studio > Arm Development
Studio Command Prompt.
• On Linux, add the <install_directory/bin> location to your PATH environment variable
and then open a UNIX bash shell.
2. To connect to the Arm FVP Cortex®-A9x4 FVP model and specify an image to load from your
workspace, at the command prompt, enter:
• On Windows: armdbg --cdb-entry "Arm FVP::VE_Cortex_A9x4::Bare Metal Debug::Bare
Metal Debug::Debug Cortex-A9x4 SMP" --image "C:\Users\<user>\developmentstudio-
workspace\HelloWorld\Debug\HelloWorld.axf"
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 107 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Debugging code
Results
Development Studio starts the Arm FVP Cortex-A9x4 FVP and loads the image. When you are
connected to your target, use any of the Arm Debugger commands to access the target and start
debugging.
Related information
Running Arm Debugger from the command-line and using scripts
Connect to a target from the command-line
Command-line: armdbg options
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 108 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Debugging code
• FVPs available with your edition of Development Studio are listed under the
Arm FVP (Installed with Arm DS) tree. To see which FVPs are available with
your license, compare Arm Development Studio editions.
Procedure
1. From the Arm Development Studio main menu, select File > New > Model Connection.
2. In the Model Connection dialog box, specify the details of the connection:
a) Give the connection a name in Debug connection name, for example:
my_external_fvp_connection.
b) If you want to associate the connection to an existing project, select Associate debug
connection with an existing project and click Next.
c) In Target Selection browse and select Base_AEMvA, then click Finish to complete the initial
configuration of the connection.
3. In the displayed Edit Configuration dialog box, use the Connection tab to select the target and
connection settings:
a) In the Select target panel confirm the target selected.
b) If required, specify Model parameters under Connections.
c) If required, Edit the Debug and Trace Services Layer (DTSL) settings in the DTSL
Configuration dialog box to configure additional debug and trace settings for your target.
4. Use the Files tab to specify your application and additional resources to download to the
target:
a) In Target Configuration > Application on host to download, specify the application that
you want to load on the model.
b) If you want to debug your application at source level, select Load symbols.
c) If you want to load additional resources, for example, additional symbols or peripheral
description files from a directory, use the Files area to add them. Click + to add resources,
click - to remove resources.
5. Use the Debugger tab to configure debugger settings.
a) In the Run control area:
• Choose if you want to Connect only to the target or Debug from entry point. If you
want to start debugging from a specific symbol, select Debug from symbol.
• If you need to run target or debugger initialization scripts, select the relevant options
and specify the script paths.
• If you need to specify at debugger start up, select Execute debugger commands
options and specify the commands.
b) The debugger uses your workspace as the default working directory on the host. If you
want to change the default location, deselect the Use default option under Host working
directory and specify a new location.
c) In the Paths area, use the Source search directory field to enter any directions on the host
to search for your application files.
d) If you need to use additional resources, click Add resource (+) to add resources, click
Remove resources (-) to remove resources.
6. If required, specify arguments to pass to the main() function. The methods of passing
arguments are described in About passing arguments to main().
7. If required, use the Environment tab to create and configure environment variables to pass into
the launch configuration when it is executed.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 109 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Debugging code
8. Click Apply and then Close to save the configuration settings and close the Debug
Configurations dialog box.
You have now created a debug configuration to connect to the Base_AEMvA FVP target. You can
view this debug configuration in the Debug Control view.
9. The next step is to start up the Base_AEMvA FVP with the appropriate settings so that
Development Studio can connect to it when you start your debugging session.
a) Open a terminal window and navigate to the installation directory of the Base_AEMvA FVP.
b) Start up the Base_AEMvA separately with the appropriate options and parameters.
For example, to run the FVP_Base_AEMvA FVP model, at the command prompt enter:
Where:
• FVP_Base_AEMvA is the executable for the FVP model on Windows platforms.
• -Ior --iris-server starts the Iris server so that Arm Debugger can connect to the FVP
model.
• -C or --parameter sets the parameter you want to use when running the FVP model.
• cluster0.NUM_CORES=1 specifies the number of cores to activate on the cluster in this
instance.
• bp.secure_memory=false sets the security state for memory access. In this example,
memory access is disabled.
• cache_state_modelled=0 sets the core cache state. In this example, it is disabled.
The parameters and options that are required depend on your specific
requirements. Check the documentation for your FVP to locate the
appropriate parameters.
You can find the options and parameters that are used in this example in
the Fixed Virtual Platforms FVP Reference Guide. You can also enter --
list-params after the FVP executable name to print available platform
parameters.
The FVP is now running in the background awaiting incoming Iris connection requests from
Arm Debugger.
10. In the Debug Control view, double-click the debug configuration that you created.
This action starts the debug connection, loads the application on the model, and loads the
debug information into the debugger.
11. Click Continue running application to continue running your application.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 110 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Debugging code
Procedure
1. From the Arm® Development Studio main menu, select File > New > Hardware Connection.
2. In the Hardware Connection dialog box, specify the details of the connection:
a) In Debug Connection enter a debug connection name, for example
my_hardware_connection and click Next.
b) In Target Selection select a target, for example Juno Arm Development Platform (r2) and
click Finish to complete the initial connection configuration.
3. In the displayed Edit Configuration dialog box, click the Connection tab to specify the target
and connection settings:
a) In the Select target panel confirm the target selected.
b) Select your debug hardware unit in the Target Connection list. For example, DSTREAM
Family.
c) If required, Edit the Debug and Trace Services Layer (DTSL) settings in the DTSL
Configuration Configuration dialog box to configure additional debug and trace settings for
your target.
d) In the Connections area, enter the Connection name or IP address of your debug hardware
probe. If your connection is local, click Browse and select the connection using the
Connection Browser.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 111 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Debugging code
4. Click the Files tab to specify your application and additional resources to download to the
target:
a) If you want to load your application on the target at connection time, in the Target
Configuration area, specify your application in the Application on host to download field.
b) If you want to debug your application at source level, select Load symbols.
c) If you want to load additional resources, for example, additional symbols or peripheral
description files from a directory, add them in the Files area. Click + to add resources, click -
to remove resources.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 112 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Debugging code
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 113 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Debugging code
This option is not available for DSTREAM probes, models, gdbserver, and
snapshot connections.
6. If required, specify arguments to pass to the main() function. The methods of passing
arguments are described in About passing arguments to main().
7. If required, use the Environment tab to create and configure environment variables to pass into
the launch configuration when it is executed.
8. Click Apply to save the configuration settings.
9. Click Debug to connect to the target and start the debugging session.
Related information
Configuring a connection to a bare-metal hardware target using gdbserver on page 114
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 114 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Debugging code
Procedure
1. From the Arm Development Studio main menu, select Run > Debug Configurations.
2. To create a new configuration, select Generic Arm C/C++ Application from the configuration
tree, and then click New Launch Configuration.
3. In the Name field, enter a suitable name for the new configuration. For example,
New_configuration.
4. In the Connection tab:
a) Select a target of Generic > GDB Debug > Connections via gdbserver to a bare metal
target > Connect to already running applications.
b) In the Connections area:
• Specify the address and port details of the target.
• If you want to terminate the gdbserver when disconnecting from the bare-metal target,
select Terminate gdbserver on disconnect.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 115 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Debugging code
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 116 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Debugging code
• If you are connecting to an already running gdbserver, then you must ensure
that it is installed and running on the target. To run gdbserver and the
application on the target use: gdbserver port path/myApplication. Where
port is the connection port between gdbserver and the application and path/
myApplication is the application that you want to debug.
Procedure
1. From the Arm Development Studio main menu, select File > New > Linux Application
Connection.
2. In the Linux Application Connection dialog box, specify the details of the connection:
a) Give the debug connection a name, for example my_linux_app_connection.
b) If using an existing project, select Use settings from an existing project option.
c) Click Finish.
3. In the Edit Configuration dialog box displayed:
• If you want to connect to a target with the application and gdbserver already running on it:
a. In the Connection tab, select Connect to already running application.
b. In the Connections area, specify the address and port details of the target.
c. If you want to terminate the gdbserver when disconnecting from the FVP, select
Terminate gdbserver on disconnect.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 117 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Debugging code
d. In the Files tab, use the Load symbols from file option in the Files panel to specify
symbol files.
e. In the Debugger tab, specify the actions that you want the debugger to perform after
connecting to the target.
f. If required, click the Arguments tab to enter arguments that are passed to the
application when the debug session starts.
g. If required, click the Environment tab to create and configure the target environment
variables that are passed to the application when the debug session starts.
• If you want to download your application to the target system and then start a gdbserver
session to debug the application, select Download and debug application. This connection
requires that ssh and gdbserver is available on the target.
a. In the Connections area, specify the address and port details of the target you want to
connect to.
b. In the Files tab, specify the Target Configuration details:
◦ Under Application on host to download, select the application to download onto
the target from your host filesystem or workspace.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 118 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Debugging code
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 119 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Debugging code
Procedure
1. From the Arm® Development Studio main menu, select File > New > Hardware Connection.
2. In the Hardware Connection dialog box, specify the details of the connection:
a) In Debug Connection give the debug connection a name, for example
my_linux_kernel_connection and click Next.
b) In Target Selection select a target, for example Juno Arm Development Platform (r2) and
click Finish to complete the initial configuration of the connection.
Figure 7-6: Name the Linux kernel connection
3. In the Edit Configuration dialog box, use the Connection tab to specify the target and
connection settings:
a) In the Select target panel, browse and select Linux Kernel and/or Device Driver Debug
operation, and further select the processor core you require.
b) Select your debug hardware unit in the Target Connection list. For example, DSTREAM
Family.
c) If you need to, Edit the Debug and Trace Services Layer (DTSL) settings in the DTSL
Configuration Editor to configure additional debug and trace settings for your target.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 120 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Debugging code
d) In the Connections area, enter the Connection name or IP address of your debug hardware
probe. If your connection is local, click Browse and select the connection using the
Connection Browser.
4. Use the Files tab to specify your application and additional resources to download to the
target:
a) If you want to load your application on the target at connection time, in the Target
Configuration area, specify your application in the Application on host to download field.
b) If you want to debug your application at source level, select Load symbols.
c) If you want to load additional resources, for example, additional symbols or peripheral
description files from a directory, add them in the Files area. Click Add resource to add
resources, click Remove resources to remove resources.
5. Select the Run control area in the Debugger tab to configure debugger settings:
a) Select Connect only and set up initialization scripts as required.
add-symbol-file <path>/modex.ko
• The path to the vmlinux must be the same as your build environment.
• In the example above, the kernel image is called vmlinux, but this could
be named differently depending on your kernel image.
• In the example above, S:0 loads the symbols for secure space with 0
offset. The offset and memory space prefix is dependent on your target.
When working with multiple memory spaces, ensure that you load the
symbols for each memory space.
d) The debugger uses your workspace as the default working directory on the host. If you
want to change the default location, deselect the Use default option under Host working
directory and specify a new location.
e) In the Paths area, specify any directories on the host to search for files of your application
using the Source search directory field.
f) If you need to use additional resources, click Add resource (+) to add resources, click
Remove resources (-) to remove resources.
6. If required, specify arguments to pass to the main() function. The methods of passing
arguments are described in About passing arguments to main().
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 121 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Debugging code
7. If required, use the Environment tab to create and configure environment variables to pass into
the launch configuration when it is executed.
8. Click Apply to save the configuration settings.
9. Click Debug to connect to the target and start the debugging session.
By default, for this type of connection, all processor exceptions are handled by
Linux on the target. Once connected, you can use the Manage Signals dialog
box in the Breakpoints view menu to modify the default handler settings.
Procedure
1. In Arm Debugger, select Window > Perspective > Open Perspective > Other > Development
Studio .
2. Select Run > Debug Configurations to open the Debug Configurations launcher panel.
3. Select the Arm Debugger debug configuration for your target in the left-hand pane.
If you want to create a new debug configuration for your target, then select Arm Debugger
from the left-hand pane, and then click the New button. Then select your bare-metal or Linux
kernel target from the Connection tab.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 122 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Debugging code
4. After selecting your target in the Connection tab, click the DTSL Options Edit button. This
shows the DTSL Configuration dialog box where you can configure trace.
5. Depending on your target platform, the DTSL Configuration dialog box provides different
options to configure trace.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 123 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Debugging code
a) For Trace capture method select the trace buffer you want to use to capture trace.
b) The DTSL Configuration dialog box shows the processors on the target that are capable of
trace. Click the processor tab you require. Then, select the option to enable trace for the
individual processors you want to capture trace.
c) Select any other trace related options you require in the DTSL Configuration dialog box.
d) Click Apply and then click OK. This configures the debug configuration for trace capture.
6. Use the other tabs in the DTSL Configuration dialog box to configure the other aspects of your
debug connection.
7. Click Apply to save your debug configuration. When you use this debug configuration to
connect, run, and stop your target, you can see the trace data in the Trace view.
The options to enable trace might be nested. In this example, you must select
Enable Cortex-A15 core trace to enable the other options. Then you must
select Enable Cortex-A15 0 trace to enable trace on core 0 of the Cortex®-A15
processor cluster.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 124 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Debugging code
Related information
Configure DSTREAM-PT trace mode
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 125 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Debugging code
Procedure
1. Select Debug Configurations… from the Run menu.
2. Select Generic Arm C/C++ Application from the configuration tree and then click New to
create a new configuration.
3. In the Name field, enter a suitable name for the new configuration, for example,
events_view_debug
4. Use the Connection tab to specify the target and connection settings:
a) Select the required platform in the Select target panel. For example, ARM Development
Boards > Versatile Express A9x4 > Bare Metal Debug > Debug Cortex-A9x4 SMP.
b) Select your debug hardware unit in the Target Connection list. For example, DSTREAM
Family.
c) In DTSL Options, click Edit to configure DSTREAM trace and other target options. This
displays the DTSL Configuration dialog box.
• In the Trace Capture tab, either select On Chip Trace Buffer (ETB) (for a JTAG cable
connection), or DSTREAM 4GB Trace Buffer (for a Mictor cable connection).
• In the ITM tab, enable or disable ITM trace and select any additional settings you
require.
5. Click the Files tab to define the target environment and select debug versions of the
application file and libraries on the host that you want the debugger to use.
a) In the Target Configuration panel, specify your application in the Application on host to
download field.
b) If you want to debug your application at source level, select Load symbols.
c) If you want to load additional resources, for example, additional symbols or peripheral
description files from a directory, use the Files area to add them. Click + to add resources,
click - to remove resources.
6. Use the Debugger tab to configure debugger settings.
a) In the Run control area:
• Specify if you want to Connect only to the target or Debug from entry point. If you
want to start debugging from a specific symbol, select Debug from symbol.
• If you need to run target or debugger initialization scripts, select the relevant options
and specify the script paths.
• If you need to specify at debugger start up, select Execute debugger commands
options and specify the commands.
b) The debugger uses your workspace as the default working directory on the host. If you
want to change the default location, deselect the Use default option under Host working
directory and specify a new location.
c) In the Paths area, specify any directories on the host to search for files of your application
using the Source search directory field.
d) If you need to use additional resources, click Add resource (+) to add resources, click
Remove resources (-) to remove resources.
7. If required, specify arguments to pass to the main() function. The methods of passing
arguments are described in About passing arguments to main().
8. Click Apply to save the configuration settings.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 126 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Debugging code
9. Click Debug to connect to the target. Debugging requires the Development Studio
perspective. If the Confirm Perspective Switch dialog box opens, click Yes to switch
perspective.
When connected and the Development Studio perspective opens, you are presented with all
the relevant views and editors.
10. Set up the Events view to show output generated by the System Trace Macrocell (STM) and
Instruction Trace Macrocell (ITM) events.
a) From the main menu, select Window > Show view > Events
b)
In the Events view, click , and select Events Settings.
c) In Select a Trace Source, ensure that the trace source matches the trace capture method
specified earlier.
d) Select the required Ports/Channels.
e) On M-profile targets, if required, select any DWT packets.
f) Click OK to close the dialog box.
11. Run the application for a few seconds, and then interrupt it.
You can view the relevant information in the Events view. For example:
Figure 7-10: Events view with data from the ITM source
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 127 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Debugging code
connect to, the communication protocol or probe to use, the application to load on the target, and
debug information to load in the debugger.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 128 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Debugging code
3. Click Next.
4. In the Export Launch Configurations dialog box:
a. Depending on your requirements, expand the CMSIS C/C++ Application group or the
Generic Arm C/C++ Application and select one or more launch configurations.
b. Click Browse… and select the required location on your local file system and click OK.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 129 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Debugging code
The launch configuration files are saved in your selected location with an extension of .launch.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 130 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Debugging code
You can view the imported launch configurations in the Debug Control panel.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 131 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Debugging code
•
If you are using the Debug Control view, on the toolbar, click .
Figure 7-14: Disconnecting from a target using the Debug Control view
• If you are using the Commands view, enter quit in the Command field and click Submit.
The disconnection process ensures that the target's state does not change, except for the
following:
• Any downloads to the target are canceled and stopped.
• Any breakpoints are cleared on the target, but are maintained in Arm® Development Studio.
• The DAP (Debug Access Port) is powered down.
• Debug bits in the DSC (Debug Status Control) register are cleared.
If a trace capture session is in progress, trace data continues to be captured even after Arm
Development Studio has disconnected from the target.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 132 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Tutorial: Hello World
The license file or the license server address and port number.
Procedure
1. Open Arm Development Studio:
• On Windows, select Windows menu > Arm Development Studio <version>
• On Linux:
◦ GUI: Use your Linux variant's menu system to locate Arm Development Studio.
◦ Command line: Run <installation_directory>/bin/armds_ide
2. The first time you open Arm Development Studio, the Product Setup dialog box opens, which
prompts you to add your product license. You can select one of the following:
• Manage Arm User-Based Licenses - select this option if you have purchased Arm
Development Studio and it is licensed using Arm user-based licensing. After selecting this
option, click Finish to open the Arm License Management Utility dialog box.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 133 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Tutorial: Hello World
• Add product license - select this option if you have purchased Arm Development Studio
and it is licensed by FlexNet licence management. After selecting this option:
a. Click Next.
b. Enter the location of your license file, or the address and port number of your license
server, and click Next.
c. The Arm Development Studio editions that you are entitled to use are listed. Select the
edition that you require, and click Next.
d. Check the details on the summary page. If they are correct, click Finish.
• Obtain evaluation license - select this option if you would like to evaluate the product.
After selecting this option:
a. Click Next.
b. Log into your Developer account using your Arm Developer account email address and
password. If you do not have an account, click Create an account.
c. Select a network interface to which your license will be locked.
d. Click Finish.
Results
Arm Development Studio opens. See IDE Overview, which describes the main features of the user
interface.
You can change the default location by selecting File > Switch Workspace.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 134 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Tutorial: Hello World
Figure 8-1: Screenshot highlighting the button for the Development Studio Perspective
Procedure
1. To create a new C project, select: File > New > Project....
2. Expand the C/C++ menu, and select C project, then click Next.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 135 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Tutorial: Hello World
Results
Figure 8-2: The IDE after creating a new project
Next steps
You can add existing source files to your project by dragging and dropping the file into the project
folder, or by selecting File > Import > General > File System.
This ensures that the application is built and loaded correctly on to your target, and that you can
debug the image at source-level.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 136 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Tutorial: Hello World
Procedure
1. In the Project Explorer view, right-click the HelloWorld project and select Properties. The
Properties for HelloWorld dialog box opens.
2. Add debug symbols into the image file:
a) Expand C/C++ Build, and select Settings.
b) Ensure the Configuration is set to Debug [Active].
3. Configure the target:
a) Select C/C++ Build > Settings.
b) In Tool Settings tab, select All Tools Settings > Target.
c) From the Target CPU dropdown, select Cortex-A53 AArch64.
d) From the Target FPU dropdown, select Armv8 (Neon).
4. Configure the image layout:
a) In the Tool Settings tab, select Arm Linker 6 > Image Layout.
b) In the RO base address field, enter 0x80000000.
5. Click Apply and Close.
6. If you are prompted to rebuild the index, click Rebuild Index.
Procedure
In the Project Explorer view, right-click the HelloWorld project and select Build Project.
Results
When the project has built, in the Project Explorer view, under Debug, locate the HelloWorld.axf
file.
The .axf file contains the object code and debug symbols that enable Arm® Debugger to perform
source-level debugging.
Debug symbols are added at build time. You can either specify this manually, using
the -g option when compiling with Arm Compiler for Embedded 6, or you can set
this to be default behavior. See Configure your project for details.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 137 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Tutorial: Hello World
The following example takes you through configuring a bare-metal Model Connection to a
Cortex®-A53 Fixed Virtual Platform (FVP), using the project you created in the previous section of
this tutorial.
Procedure
1. Create a .ds script so that the FVP handles semihosting, instead of Arm Debugger:
a) From the main menu, select File > New > Other....
b) In the Select a wizard dialog box, select Arm Debugger > Arm Debugger Script and click
Next.
c) Click Workspace… and select the HelloWorld project as the location for this script. Click
OK.
d) In the File Name field, name this script use_model_semihosting and click Finish. The empty
script opens in the Editor window.
e) Add the following code to the script and press Ctrl + S to save:
set semihosting enabled off
2. From the main menu, select File > New > Model Connection.
3. In the Model Connection dialog box, specify the details of the connection:
a) Enter a name for the debug connection, for example HelloWorld_FVP.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 138 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Tutorial: Hello World
b) Select Associate debug connection with an existing project, and select the project that you
created and built in the previous section Build your project.
c) Click Next.
4. In the Target Selection dialog box, specify the details of the target:
a) Select Arm FVP (Installed with Arm DS) > Base_A53x1.
Figure 8-4: Select Base_A53x1 model
b) Click Finish.
5. In the Edit Configuration dialog box, ensure the right target is selected, the appropriate
application files are specified, and the debugger knows where to start debugging from:
a) Under the Connection tab, ensure that Arm FVP (Installed with Arm DS) > Base_A53x1 >
Bare Metal Debug > Cortex-A53 is selected.
b) Under Bare Metal Debug, in the Model parameters field, add the following parameter:
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 139 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Tutorial: Hello World
-C bp.secure_memory=false
This parameter disables the TZC-400 TrustZone memory controller included in the
Base_A53x1 FVP. By default, the memory controller refuses all accesses to DRAM memory.
c) In the Files tab, select Target Configuration > Application on host to download >
Workspace.
d) Click and expand the HelloWorld project and from the Debug folder, select HelloWorld.axf
and click OK.
e) In the Debugger tab, select Debug from symbol.
f) Enable Run target initialization debugger script (.ds/.py) and click Workspace….
g) Select the use_model_semihosting.ds script and click OK.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 140 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Tutorial: Hello World
6. Click Debug to load the application on the target, and load the debug information into the
debugger.
Results
• By default for FVPs, the CLCD window launches. You can disable this default action with
the -C bp.vis.disable_visualisation=1 parameter. See Using the CLCD window for more
information.
• Arm Development Studio connects to the model and displays the connection status in the
Debug Control view.
• The application loads on the target, and stops at the main() function, ready to run.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 141 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Tutorial: Hello World
- This is a toggle. Click this to toggle between stepping instructions and stepping source code.
This applies to the above step controls.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 142 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Tutorial: Hello World
• Commands view displays messages output by the debugger. Also use this view to enter Arm®
Debugger commands.
• C/C++ Editor view shows the active C, C++, or Makefile. The view updates when you edit
these files.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 143 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Tutorial: Hello World
• Disassembly view shows the built program as assembly instructions, and their memory
location.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 144 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Tutorial: Hello World
indicates the location in the code where your program is stopped. In this case, it is at the
main() function.
• Memory view shows how the code is represented in the target memory. For example, to view
how the string Hello World from the application is represented in memory:
1. Open the Memory view.
2. In the Address field, enter &main and press Enter on your keyboard. The view displays the
contents of the target's memory.
3. Change the displayed number of bytes to 96 and press Enter.
4. Right-click on the column headings, and select Characters.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 145 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Tutorial: Hello World
In the above example, the Memory view displays the hexadecimal values for the code and the
ASCII character encoding of the memory values, which enable you to view the details of the code.
After completing your debug activities, you can Disconnect from the target.
• If you are using the Debug Control view, click Disconnect from Target on the toolbar.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 146 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Tutorial: Hello World
Figure 8-16: Disconnecting from a target using the Debug Control view
• If you are using the Commands view, enter quit in the Command field, then press Enter.
The disconnection process ensures that the state of the target does not change, except for the
following case:
• Any downloads to the target are canceled and stopped.
• Any breakpoints are cleared on the target, but are maintained in Arm® Development Studio.
• The DAP (Debug Access Port) is powered down.
• Debug bits in the DSC (Debug Status Control) register are cleared.
If a trace capture session is in progress, trace data continues to be captured even after Arm
Development Studio has disconnected from the target.
Procedure
1. In the Debug Control view, right-click on a disconnected target connection and select DTSL
Options.
2. In the Debug and Trace Services Layer (DTSL) Configuration dialog box, select the Model
Trace option under the Trace Buffer tab.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 147 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Tutorial: Hello World
Here you can also change the trace buffer size in the Trace Buffer Size drop-
down menu.
3. In the Core Trace tab, select the processor on which you want to enable trace capture.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 148 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Tutorial: Hello World
4. Select Apply and then OK to apply your settings and close the dialog box.
Next steps
1. Connect to the target.
2. In the Trace view, you can see all the instructions that are executed in a debug session.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 149 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Tutorial: Hello World
This workbook describes how to manually create a platform configuration for a specific target
with Arm® Development Studio Platform Configuration Editor (PCE). For the majority of targets,
you can create a platform configuration automatically by performing target auto-detection with
PCE. However, manually configuring a target can help you understand:
◦ The information required to create a platform configuration
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 150 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Tutorial: Hello World
This workbook describes how to set up and debug the NXP i.MX7 SABRE board development
board with Arm Development Studio. It takes you through the process of installing a Linux
image, and then guides you through a debug session with bare-metal and Linux applications.
• Accessing memory-mapped peripherals with Arm Development Studio
In most Arm embedded systems, peripherals are at specific addresses in memory. In your
code, you must consider not only the size and address of the register, but also its alignment in
memory. This tutorial describes how to map a C variable to each register of a memory-mapped
peripheral and use a pointer to that variable to read from and write to the register.
• Debugging with the MCIMX8M-EVK board, DSTREAM-ST, and Arm Development Studio
This tutorial describes how to use Arm Development Studio to debug a simple program running
on an MCIMX8M-EVK board. By completing a series of basic tasks, you learn about the
different features provided by Arm Development Studio including:
◦ Creating and configuring a simple Hello World project
◦ Configuring a debug connection to the i.MX 8MQuad using DSTREAM-ST
◦ Using Arm Development Studio to access information about memory and the memory map
◦ Creating a platform configuration for the MCIMX8M-EVK board
◦ Obtaining trace output from the MCIMX8M-EVK board
◦ Using the CoreSight Access Tool for SoC600 (CSAT600) with the MCIMX8M-EVK board
and DSTREAM-ST
• Beyond Hello World - advanced Arm Compiler 6 features
This tutorial explores some of the more advanced features of the Arm Compiler 6 toolchain.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 151 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Troubleshoot Arm Development Studio
You might encounter the following problems when debugging a Linux application.
chmod +x <myImage>
ERROR(CMD16-LKN36):
! Failed to load image "gator.ko"
! Unable to parse module because the operating system support is not active
print init_nsproxy.uts_ns->name
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 152 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Troubleshoot Arm Development Studio
Related information
Configuring a connection to a Linux application using gdbserver on page 116
Configuring a connection to a Linux kernel on page 119
On rare occasions an internal error might occur, which causes the debugger to generate an
error message suggesting that you report it to your local support representatives. You can help
to improve the debugger, by giving feedback with an internal log that captures the stacktrace
and shows where in the debugger the error occurs. To find out your current version of Arm®
Development Studio, you can select Help > About Arm Development Studio IDE in the IDE, or
open the product release notes.
To enable internal logging in the IDE, enter the following in the Commands view of the
Development Studio perspective:
1. To enable the output of logging messages from the debugger using the predefined DEBUG
level configuration: log config debug
2. To redirect all logging messages from the debugger to a file: log file <debug.log>
Enabling internal logging can produce very large files and slow down the debugger
significantly. Only enable internal logging when there is a problem.
Related information
Commands view
Browsing failed: Incompatible virtual COM port driver (ftdi_sio) must be unloaded to
use FTDI MPSSE JTAG probe. See AN_220 FTDI Drivers Installation Guide for Linux.
Cause
The Linux operating system automatically loads an incompatible driver when the FTDI probe is
plugged in.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 153 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Troubleshoot Arm Development Studio
Solution
1. To unload the incompatible driver, enter the following commands in your Terminal:
2. Browse for your FTDI probe again, and it is now listed in the Connection Browser.
Related information
FTDI Drivers Installation Guide for Linux
Check the target connections and power up state, then try and reconnect to the target.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 154 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Troubleshoot Arm Development Studio
Check that the memory map settings are correct for the selected target. If set incorrectly, the
application might crash because of stack corruption or because the application overwrites its own
code.
Related information
Configuring a connection to a Linux application using gdbserver on page 116
Configuring a connection to a Linux kernel on page 119
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 155 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Migrating from DS-5 to Arm Development Studio
Figure 10-1: Product Setup dialog box when you first open Arm Development Studio.
• To choose not to add a license to Arm Development Studio, you can click Skip.
If you choose not to add a license, some functionality is disabled.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 156 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Migrating from DS-5 to Arm Development Studio
• You can add license information to Arm Development Studio at any time using
the Arm License Manager. To open the Arm License Manager, select Help >
Arm License Manager.
This activity assumes that you have not skipped adding a license to Arm Development Studio and
that you are using an existing licence. If you are using user-based licensing, follow the instructions
in Add a license using the Arm License Manager.
Procedure
1. Open Arm Development Studio IDE.
2. In the Product Setup dialog box, select Add product license and click Next.
Figure 10-2: Enter existing license details screen.
3. In the Enter existing license details screen, in the License Server field, enter the license server
port and address and click Next.
4. In the Activate Product screen, select the appropriate Arm Development Studio edition from
the provided list.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 157 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Migrating from DS-5 to Arm Development Studio
5. To save and apply your changes, click Next and then Finish.
Next steps
You can change or add license information in Arm Development Studio using the Arm License
Manager. You can access the Arm License Manager by selecting either Help > Arm License
Manager or Window > Preferences > Arm DS > Product Licenses.
Related information
Add a license using Product Setup on page 19
Product and toolkit configuration for FlexNet Publisher (FNP) licenses
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 158 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Migrating from DS-5 to Arm Development Studio
To change to a different workspace directory in Arm Development Studio, select File > Switch >
Workspace.
To change the default behavior and specify a workspace on startup, navigate to Window >
Preferences > General > Startup and Shutdown > Workspaces and tick Prompt for workspace on
startup.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 159 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Migrating from DS-5 to Arm Development Studio
The Import Project option is only present if no projects are listed in the Project
Explorer view.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 160 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Migrating from DS-5 to Arm Development Studio
In Arm Development Studio, you can now create and import existing μVision® projects:
1. From the toolbar, select File > Import.. to open the Import dialog.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 161 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Migrating from DS-5 to Arm Development Studio
2. Expand the Arm Development Studio drop-down, select μVision Project and click Next.
The Create a Debug Connection option is only shown in the Debug Control view
if no launch configurations exist in Arm Development Studio workspace. Arm
Development Studio provides new methods to create hardware, Linux application
and model connections. To read more about these new methods, see:
• Creating a new Hardware Connection
• Creating a new Linux Application Connection
• Creating a new Model Connection
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 162 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Migrating from DS-5 to Arm Development Studio
To connect to an existing configuration, click the Connect with Existing Config button.
The Connect with Existing Config option is only shown if no launch configurations
exist in the Arm Development Studio workspace.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 163 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Migrating from DS-5 to Arm Development Studio
• To add more views to a Development Studio perspective in Arm Development Studio, you can
either click +, or select Window > Show View and choose your view.
• Use the Builds the selected project (hammer) and Cleans the selected project (broom) buttons
in the Project Explorer view to build and clean the selected project.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 164 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Migrating from DS-5 to Arm Development Studio
Figure 10-10: Build and Clean project buttons in Project Explorer view
Related information
Debug Control view
Perspectives in Arm Development Studio
Procedure
1. Choose one of these project import methods:
• Click the Import Project option in the Project Explorer view.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 165 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Migrating from DS-5 to Arm Development Studio
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 166 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Migrating from DS-5 to Arm Development Studio
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 167 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Migrating from DS-5 to Arm Development Studio
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 168 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Migrating from DS-5 to Arm Development Studio
b) Click OK.
Results
The imported project(s) appear in the Project Explorer view.
Related information
Product and toolkit configuration for FlexNet Publisher (FNP) licenses
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 169 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Migrating from DS-5 to Arm Development Studio
embedded software applications for processors that are based on Arm® Cortex®-M class and
Cortex-A5/A7/A9.
CMSIS Packs are a delivery mechanism for software components, device parameters, and board
support. A CMSIS Pack is a file collection that might include:
• Source code, header files, software libraries - for example RTOS, DSP and generic middleware.
• Device parameters, such as the memory layout or debug settings, along with startup code and
Flash programming algorithms.
• Board support, such as drivers, board parameters, and debug connections.
• Documentation and source code templates.
• Example projects that show you how to assemble components into complete working systems.
CMSIS Packs are developed by various silicon and software vendors, covering thousands of
different boards and devices. You can also use them to enable life-cycle management of in-house
software components.
You can use the CMSIS Pack Manager perspective in Arm Development Studio to load and
manage CMSIS Packs. The New Project wizard allows you to easily create a new project based on
selected CMSIS Pack(s).
To create a new Pack-based project, install the Packs needed for your target board/device from the
CMSIS Pack Manager, then use File > New > Project to create a new CMSIS C Project.
If you have already installed some CMSIS Packs, you can redirect the CMSIS Pack
Manager to the existing CMSIS Packs by setting Window > Preferences > CMSIS
Packs > CMSIS Pack root folder to the location of the installation folder.
You can access the CMSIS Pack Manager perspective by navigating to Window > Perspective >
Open Perspective > CMSIS Pack Manager.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 170 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Migrating from DS-5 to Arm Development Studio
To install the CMSIS pack(s) you must select the device manufacturer and board in the Devices
view, and, in the Packs view, click the appropriate Install icon next to the pack that you want to
install.
When you create a new project or hardware connection, boards or devices that
have CMSIS packs installed are available as selectable targets. For more information
on creating a hardware connection in Arm Development Studio, see Create a new
Hardware Connection.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 171 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Migrating from DS-5 to Arm Development Studio
You can copy example CMSIS pack projects into the current workspace by opening the Boards
view and selecting your target board. Then open the Examples view and click the Import icon next
to your preferred example project.
Not all CMSIS packs come with examples. Only examples for installed CMSIS packs
are visible by default. Untick Only show examples from installed packs to see
examples from packs that you have not yet installed.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 172 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Migrating from DS-5 to Arm Development Studio
The CMSIS Pack Manager shows a μVision® icon if the example is a μVision project and requires
conversion.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 173 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Migrating from DS-5 to Arm Development Studio
Related information
Imported μVision project limitations on page 202
Procedure
1. Open the New Debug Connection dialog:
• Click the New Debug Connection button at the top of the Development Studio
perspective.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 174 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Migrating from DS-5 to Arm Development Studio
Figure 10-19: Create new debug connection from Development Studio perspective.
You can also open the Hardware Connection wizard by selecting File > New >
Hardware Connection.
3. Enter a connection name in the Debug connection name field and click Next.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 175 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Migrating from DS-5 to Arm Development Studio
4. Select a hardware target to connect to from the available list and click Finish.
The Location entry of the selected target tells you whether the target support is
provided by a CMSIS Pack or a Configuration Database (configdb).
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 176 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Migrating from DS-5 to Arm Development Studio
If the selected target uses a CMSIS pack that is not installed, the dialog shown below appears:
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 177 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Migrating from DS-5 to Arm Development Studio
When you select the hardware and install any required CMSIS packs, the Arm Development
Studio Edit Configuration dialog launches. This is presented differently depending on the
support for your selected target:
• If the device support for your selected target comes from a configdb, the Edit
Configuration dialog functions the same as the DS-5 Debug Configurations screen, and
looks like this:
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 178 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Migrating from DS-5 to Arm Development Studio
• If the device support for your selected target comes from a CMSIS Pack, the Edit
Configuration dialog looks like this:
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 179 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Migrating from DS-5 to Arm Development Studio
This activity assumes the device support for your selected target comes from a
CMSIS Pack.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 180 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Migrating from DS-5 to Arm Development Studio
Results
The debug connection status appears in the Debug Control view and the created launch
configuration appears in the Project Explorer view.
Procedure
1. Open the Hardware Connection wizard:
a) Click the New Debug Connection icon in the Debug Control view, in the View Menu listing
of the Debug Control view, or at the top of the Development Studio perspective.
b) Select Hardware Connection and click Next.
2. Enter a connection name in the Debug Connection name field and click Next.
3. Click Add a new platform….
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 181 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Migrating from DS-5 to Arm Development Studio
4. Select the appropriate debug probe connection in the Conection Type drop-down list.
The Debug Probe Connection view automatically lists any debug probes of the
selected type. Unlike DS-5, Arm Development Studio can use ULINK devices for
autodetection purposes. If the debug probe is not discovered, you can enter the
debug probe connection information in the Connection Address field.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 182 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Migrating from DS-5 to Arm Development Studio
6. When the autodetection process completes, choose whether or not to inspect the platform in
the Platform Configuration Editor.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 183 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Migrating from DS-5 to Arm Development Studio
• To continue using the Hardware Connection wizard, select Save platform and return to the
connection wizard.
• To exit the Hardware Connection wizard and enter the Platform Configuration Editor,
select Save platform and inspect in Platform Configuration Editor.
7. Click Next.
This activity assumes that you have chosen to continue using the Hardware
Connection wizard.
8. Enter platform identification details into the Platform fields and click Finish.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 184 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Migrating from DS-5 to Arm Development Studio
9. Select the new hardware configuration in the Target Selection view and click Finish.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 185 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Migrating from DS-5 to Arm Development Studio
Results
The new hardware target configuration appears in the Edit Configuration view.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 186 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Migrating from DS-5 to Arm Development Studio
Procedure
1. Open the New Debug Connection dialog:
a) Click the New Debug Connection button at the top of the Development Studio
perspective.
Figure 10-31: Create new debug connection from Development Studio perspective.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 187 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Migrating from DS-5 to Arm Development Studio
3. Enter a connection name in the Debug connection name field and click Finish.
This activity assumes you have not associated the connection with an existing
project.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 188 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Migrating from DS-5 to Arm Development Studio
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 189 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Migrating from DS-5 to Arm Development Studio
d. In the Files tab, use the Load symbols from file option in the Files panel to specify
symbol files.
e. In the Debugger tab, specify the actions that you want the debugger to perform after
connecting to the target.
f. If required, click the Arguments tab to enter arguments that are passed to the
application when the debug session starts.
g. If required, click the Environment tab to create and configure the target environment
variables that are passed to the application when the debug session starts.
• If you want to download your application to the target system and then start a gdbserver
session to debug the application, select Download and debug application.
This connection requires that ssh and gdbserver is available on the target.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 190 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Migrating from DS-5 to Arm Development Studio
a. In the Connections area, enter the Address and Port details of the target.
b. In the Files tab, specify the Target Configuration details:
◦ Under Application on host to download, select the application to download onto
the target from your host filesystem or workspace.
◦ Under Target download directory, specify the download directory location.
◦ Under Target working directory, specify the target working directory.
◦ If required, use the Load symbols from file option in the Files panel to specify
symbol files.
c. In the Debugger tab, specify the actions that you want the debugger to perform after it
connects to the target.
d. If required, click the Arguments tab to enter arguments that are passed to the
application when the debug session starts.
e. If required, click the Environment tab to create and configure the target environment
variables that are passed to the application when the debug session starts.
• If you want to connect to your target, start gdbserver, and then debug an application
already present on the target, select Start gdbserver and debug target resident application,
and configure the options.
a. In the Model parameters area, the Enable virtual file system support option maps
directories on the host to a directory on the target. The Virtual File System (VFS)
enables the FVP to run an application and related shared library files from a directory on
the local host.
◦ The Enable virtual file system support option is selected by default. If you do not
want virtual file system support, deselect this option.
◦ If the Enable virtual file system support option is enabled, your current workspace
location is used as the default location. The target sees this location as a writable
mount point.
b. In the Files tab, specify the location of the Application on target and the Target
working directory. If you need to load symbols, use the Load symbols from file option
in the Files panel.
c. In the Debugger tab, specify the actions that you want the debugger to perform after
connecting to the target.
d. If required, click the Arguments tab to enter arguments that are passed to the
application when the debug session starts.
e. If required, click the Environment tab to create and configure the target environment
variables that are passed to the application when the debug session starts.
5. Click Apply to save the configuration settings.
6. Click Debug to connect to the target and start debugging.
Results
A debug connection is created to your chosen Linux application target.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 191 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Migrating from DS-5 to Arm Development Studio
Procedure
1. Open the New Debug Connection dialog:
a) Click the New Debug Connection button at the top of the Development Studio
perspective.
Figure 10-35: Create new debug connection from Development Studio perspective.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 192 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Migrating from DS-5 to Arm Development Studio
3. Enter a new connection name in the Debug connection name field and click Next.
Figure 10-37: Enter Model Connection name
4. Select a model to connect to from the available list or click Add a new model.. to add a new
model configuration to Arm Development Studio.
See Connect to new or custom models for more information about connecting
to new models.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 193 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Migrating from DS-5 to Arm Development Studio
5. Click Finish.
Results
The Edit Configuration dialog opens.
The Arm Development Studio Edit Configuration dialog provides the same
functions as the DS-5 Debug Configurations dialog. The main difference is that the
Arm Development Studio Edit Configuration dialog only shows the configuration
details for the selected model under the Select target field in the Connection tab.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 194 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Migrating from DS-5 to Arm Development Studio
Next steps
Make any necessary changes to the debug configuration in the Edit Configuration dialog.
Related information
Debug Configurations - Connection tab
Debug Configurations - Files tab
Debug Configurations - Debugger tab
Debug Configurations - OS Awareness tab
Debug Configurations - Arguments tab
Debug Configurations - Environment tab
Debug Configurations - Export tab
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 195 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Migrating from DS-5 to Arm Development Studio
Procedure
1. Open the Model Connection wizard:
a) Select File > New > Model Connection.
2. Enter a connection name in the Debug connection name field and click Next.
3. Click Add a new model…
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 196 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Migrating from DS-5 to Arm Development Studio
4. Select a model interface for connecting to your model. You have two interface options - Iris or
Component Architecture Debug Interface (CADI).
Iris model interface
• To launch and connect to a specific model from your local file system using Iris:
a. Select the Launch and connect to a specific model option and click Next.
b. In the Model Selection from File System dialog box, click File to browse for a
model and select it.
c. Click Open, then click Finish.
• To connect to a model running on the local host:
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 197 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Migrating from DS-5 to Arm Development Studio
To connect to models running on the local host, you must launch the
model with the --iris-server switch before connecting to it.
a. Select the Browse for model running on local host option and click Next.
b. Select the model you require from the listed models.
To connect to models running on the local host, you must first launch
the model with the --iris-server switch before connecting to it. To
connect to models running on a remote host, you must first launch the
model with the --iris-server --iris-allow-remote switches.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 198 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Migrating from DS-5 to Arm Development Studio
a. Select the Connect to model running on either local or remote host option and
click Next.
b. Enter the connection address and port number of the model.
c. Click Finish.
CADI model interface
The CADI model interface is deprecated. Arm recommends that you use
the Iris model interface instead.
• To launch and connect to a specific model from your local file system using CADI:
a. Select the Launch and connect to a specific model option and click Next.
b. In the Model Selection from File System dialog box, click File to browse for a
model and select it.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 199 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Migrating from DS-5 to Arm Development Studio
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 200 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Migrating from DS-5 to Arm Development Studio
The selected model is imported and the *.mdf created. The Model Configuration Editor opens
and loads the imported model file. You can view the configuration database and model in the
Project Explorer.
5. (Optional) Rename the Manufacturer Name and Platform Name, and if necessary, use the
Model Configuration Editor to complete the model configuration.
If you do not enter a Manufacturer Name, the platform is listed under Imported
in the Debug Configurations dialog box.
Next steps
• Make any changes to the model in the Model Configuration Editor. To save the changes to the
model, click Save.
• To import and rebuild the Development Studio configuration database, click Import.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 201 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Migrating from DS-5 to Arm Development Studio
• Click Debug to open the Debug Configurations dialog box to create, manage, and run
configurations for this target.
Related information
Create a new model configuration
Therefore, each μVision project target is imported as an individual Arm Development Studio
project with its own copy of the project files.
• When you convert and import a μVision project, a copy of the project files are created and
stored in your workspace directory.
• When you are preparing a μVision project for import into Arm Development Studio, you must
ensure that all the files and folders that are specified in the project, are either in the same folder
as the project file, or are in a subdirectory structure. If there are any files that are outside of
the project folder, you must copy these into the project folder, and then manually resolve any
relative dependencies.
• μVision Multi-Project-Workspace files (*.uvmpw) are not supported. Instead, you must import
the projects included in the workspace individually, and set up project interdependencies
manually.
• You cannot directly import μVision Multi-Project-Workspace (*.uvmpw) into Arm Development
Studio. To use projects contained in .uvmpw files, you must import each project individually and
manually configure their dependencies.
• You can only import μVision projects that specify fixed compiler versions. These compiler
toolchains must also be installed in Arm Development Studio. This is because, in Arm
Development Studio, the compiler version is configured per project target.
• User commands in μVision projects are not converted into the corresponding Arm
Development Studio Build Steps. To check or edit the converted Build Steps, right-click the
project, and select Properties > C/C++ Build > Settings > Build Steps.
• You must translate Key Sequence for Tool Parameters to their corresponding variables in Arm
Development Studio.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 202 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Migrating from DS-5 to Arm Development Studio
• The ElfDwT utility is not included in the Arm Development Studio installation. You must
manually set up Signature Creator for NXP Cortex-M Devices (ElfDwT) as an Arm Development
Studio post-build step. To set up a post-build step, right-click the project and select Properties
> C/C++ Build > Settings > Build Steps.
• The Using FCARM with μVision utility is not included in the Arm Development Studio
installation.
• In μVision source groups, software components and individual files can have specific
assignments to memory regions which are evaluated when the tools generate the linker script.
This feature is not available in Arm Development Studio, so you must manually edit the linker
script file.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 203 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Terminology
Appendix A Terminology
Arm® Development Studio documentation uses a range of terms. These are listed below.
Device
A component on a target that contains the application that you want to debug.
Dialog box
A small page that contains tabs, panels, and editable fields which prompt you to enter
information.
Editor
A view that enables you to view and modify the content of a file, for example source files.
The tabs in the editor area show files that are currently open for editing.
Flash Program
A term used to describe the storing of data on a flash device.
IDE
The Integrated Development Environment. A window that contains perspectives, menus,
and toolbars. This is the main development environment where you can manage individual
projects, associated sub-folders, and source files. Each window is linked to one workspace.
Panel
A small area in a dialog box or tab to group editable fields.
Perspective
Perspectives define the layout of your selected views and editors in Eclipse. They also have
their own associated menus and toolbars.
Project
A group of related files and folders in Eclipse.
Resource
A generic term used to describe a project, file, folder, or a combination of these.
Send To
A term used to describe sending a file to a target.
Tab
A small overlay page that contains panels and editable fields within a dialog box to group
related information. Clicking on a tab brings it to the top.
Target
A development platform on a printed circuit board or a software model that emulates the
expected behavior of Arm hardware.
View
Views provide related information, for a specific function, corresponding to the active file in
the editor. They also have their own associated menus and toolbars.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 204 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Terminology
Wizard
A group of dialog boxes to guide you through common tasks. For example, creating new files
and projects.
Workspace
An area on your file system used to store files and folders related to your projects.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 205 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Keyboard shortcuts
F3
Click an assembly instruction and press F3 to see help information about the instruction.
F10
Press F10 to access the main menu. You can then navigate the main menu using the arrow
keys.
Alt+F4
Exit Arm Development Studio.
Alt+Left arrow
Go back in navigation history.
Alt+Right arrow
Go forward in navigation history.
Ctrl+Semicolon
In the Arm assembler editor, add comment markers to a selected block of code in the active
file.
Ctrl+Home
Move the editor focus to the beginning of the code.
Ctrl+End
Move the editor focus to the end of the code.
Ctrl+B
Build all projects in the workspace that have changed since the last build.
Ctrl+F
Open the Find or Find/Replace dialog box to search through the code in the active editor.
Some editors are read-only and therefore disable this functionality.
Ctrl+F4
Close the active file in the editor view.
Ctrl+F6
Cycle through open files in the editor view.
Ctrl+F7
Cycle through available views.
Ctrl+F8
Cycle through available perspectives.
Ctrl+F10
Use with the arrow keys to access the drop-down menu.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 206 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Keyboard shortcuts
Ctrl+L
Move to a specified line in the active file.
Ctrl+Q
Move to the last edited position in the active file.
Ctrl+Space
Auto-complete selected functions in editors.
Shift+F10
Use with the arrow keys to access the context menu.
Ctrl+Shift+F
Activate the code style settings in the Preferences dialog box and apply them to the active
file.
Ctrl+Shift+L
Open a small page with a list of all keyboard shortcuts.
Ctrl+Shift+R
Open the Open resource dialog box.
Ctrl+Shift+T
Open the Open Type dialog box.
Ctrl+Shift+/
In the C/C++ editor, add comment markers to the start and end of a selected block of code
in the active file.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 207 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Proprietary Notice
This document is protected by copyright and other related rights and the use 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 Limited ("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 the
subject matter of this document infringes any third party patents.
The content of this document is informational only. Any solutions presented herein are subject
to changing conditions, information, scope, and data. This document was produced using
reasonable efforts based on information available as of the date of issue of this document.
The scope of information in this document may exceed that which Arm is required to provide,
and such additional information is merely intended to further assist the recipient and does not
represent Arm’s view of the scope of its obligations. You acknowledge and agree that you possess
the necessary expertise in system security and functional safety and that you shall be solely
responsible for compliance with all legal, regulatory, safety and security related requirements
concerning your products, notwithstanding any information or support that may be provided by
Arm herein. In addition, you are responsible for any applications which are used in conjunction
with any Arm technology described in this document, and to minimize risks, adequate design and
operating safeguards should be provided for by you.
This document may include technical inaccuracies or typographical errors. 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, any patents, copyrights, trade secrets, trademarks, or other rights.
TO THE EXTENT NOT PROHIBITED BY LAW, IN NO EVENT WILL ARM BE LIABLE FOR
ANY DAMAGES, INCLUDING WITHOUT LIMITATION ANY DIRECT, INDIRECT, SPECIAL,
INCIDENTAL, PUNITIVE, OR CONSEQUENTIAL DAMAGES, HOWEVER CAUSED AND
REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF ANY USE OF THIS
DOCUMENT, EVEN IF ARM HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
Reference by Arm to any third party’s products or services within this document is not an express
or implied approval or endorsement of the use thereof.
This document consists solely of commercial items. You shall be responsible for ensuring that
any permitted use, duplication, or disclosure of this document complies fully with any relevant
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 208 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
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.
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 this document shall prevail.
The validity, construction and performance of this notice shall be governed by English Law.
The Arm corporate logo and words marked with ® or ™ are registered trademarks or trademarks
of Arm Limited (or its affiliates) in the US and/or elsewhere. Please follow Arm’s trademark usage
guidelines at https://www.arm.com/company/policies/trademarks. All rights reserved. Other brands
and names mentioned in this document may be the trademarks of their respective owners.
PRE-1121-V1.0
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 209 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Product status
All products and services provided by Arm require deliverables to be prepared and made available
at different levels of completeness. The information in this document indicates the appropriate
level of completeness for the associated deliverables.
Revision history
These sections can help you understand how the document has changed over time.
Document history
2024.0- 17 May 2024 Non- Updated document for Arm Development Studio
00 Confidential 2024.0
2023.0- 13 April 2023 Non- Updated document for Arm Development Studio
00 Confidential 2023.0
2022.1- 21 July 2022 Non- Updated document for Arm Development Studio
00 Confidential 2022.1
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 210 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
2022.0- 27 April 2022 Non- Updated document for Arm Development Studio
01 Confidential 2022.0
2022.0- 29 March 2022 Non- Updated document for Arm Development Studio
00 Confidential 2022.0 Beta
2021.1- 26 August 2021 Non- Documentation update 1 for Arm Development Studio
01 Confidential 2021.1
2021.1- 9 June 2021 Non- Updated document for Arm Development Studio
00 Confidential 2021.1
2021.0- 19 March 2021 Non- Updated document for Arm Development Studio
00 Confidential 2021.0
2000-01 3 July 2020 Non- Documentation update 1 for Arm Development Studio
Confidential 2020.0
2000-00 20 March 2020 Non- Updated document for Arm Development Studio
Confidential 2020.0
1901-00 15 July 2019 Non- Updated document for Arm Development Studio
Confidential 2019.0-1
1900-00 11 April 2019 Non- Updated document for Arm Development Studio
Confidential 2019.0
1800-02 31 January 2019 Non- Documentation update 2 for Arm Development Studio
Confidential 2018.0
Change history
For information about the changes to the Arm Development Studio Getting Started Guide, see the
Arm Development Studio Release Notes.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 211 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Conventions
The following subsections describe conventions used in Arm documents.
Glossary
The Arm Glossary is a list of terms used in Arm documentation, together with definitions for
those terms. The Arm Glossary does not contain terms that are industry standard unless the Arm
meaning differs from the generally accepted meaning.
Typographic conventions
Arm documentation uses typographical conventions to convey specific meaning.
Convention Use
italic Citations.
bold Interface elements, such as menu names.
For example:
SMALL CAPITALS Terms that have specific technical meanings as defined in the Arm® Glossary. For example,
IMPLEMENTATION DEFINED, IMPLEMENTATION SPECIFIC, UNKNOWN, and UNPREDICTABLE.
Your system requires the following. If you do not follow these requirements your
system will not work.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 212 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
You are at risk of causing permanent damage to your system or your equipment, or
harming yourself.
A useful tip that might make it easier, better or faster to perform a task.
A reminder of something important that relates to the information you are reading.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 213 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Useful resources
This document contains information that is specific to this product. See the following resources for
other useful information.
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 214 of 215
Arm® Development Studio Getting Started Guide Document ID: 101469_2024.1_00_en
Issue 00
Copyright © 2018–2024 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 215 of 215