Spring has arrived for many, and with it comes the latest update of Arm Development Studio. This 2020.0 release adds the latest Arm IP support and useful new features across all the components. This release provides the first public support for the Cortex-M55 processor. There is also debugger and build support for systems implementing Arm Custom Instructions. Both of these key technologies are supported by all editions, including the next release of Development Studio Platinum Edition, available soon.
As given Arm processors become more readily available on devices in the marketplace, the support matrix of those cores within the different editions also evolves. Cortex-A77, Cortex-A34, and Neoverse N1 processors are all now supported by the appropriate Development Studio edition. For a complete look at how the various Arm processors are supported per edition see here. Out-of-the-box support for standard platforms also continues to grow. New validated debug configurations include key automotive and embedded market devices, as well as the latest Arm subsystems:
Included by default is the latest Arm Compiler 6.14. This mature, industry-leading toolchain is the standard compiler for a number of stand-alone and RTOS-based embedded applications. Arm continues to focus on performance improvements with each release. It is recommended to stay up to date with the latest compiler version whenever possible.
Arm Compiler 6.14 is the first to support Cortex-M55, enabling higher DSP and machine learning application performance via Helium code.
armclang -c --target=arm-arm-none-eabi -mcpu=cortex-m55
Debug support is also provided, with user-selectable visualizations of MVE registers and the Helium instructions.
For more information on developing for Cortex-M55, see this article.
Custom Instructions are the latest innovation from Arm, giving designers the ability to create their own application-specific instructions to accelerate their algorithms as appropriate. These custom instructions can directly access the Arm registers, meaning no additional latency is incurred. The custom instructions are implemented, from a software point of view, as an overlap of the general coprocessor instruction space. Arm Compiler 6.14 adds a cdecpN feature option to the CPU or architecture option to define the instruction space used.
armclang -c --target=arm-arm-none-eabi -mcpu=cortex-m33+cdecp0
armclang -c --target=arm-arm-none-eabi -march=armv8-m.base+cdecp0+cdecp1
These options will generate appropriate error messages when the incorrect co-processor numbers are used.
../cde.S:20:6: error: coprocessor must be configured as GCP
mrc p1, 4, r5, c3, c4, 0
../cde.S:21:6: error: coprocessor must be configured as CDE
cx1a p2, r2, #0x1
These instructions can also be recognized the Development Studio debugger. By default, they will be disassembled as standard co-processor instructions.
And so, the debugger must be set up appropriately. This is done with the new set cde-coprocessors command within the debugger, which can be used from the command line or within any debug configuration script that you may run, including within the debug configuration itself.
set cde-coprocessors p0=cde, p1=cde
With this setting made, the instructions are displayed appropriately.
The interface between the debugger and virtual platforms is migrating from CADI to a new standard known as Iris. This release further improves the end user experience when connecting via Iris.
For example, the trace data generated from Iris is significantly (+10x) smaller than the equivalent trace data VIA CADI, meaning that you can readily generate a trace execution history for much longer from your virtual platform, to aid in debugging, and high-level profiling functionality. The following example shows the same code (the calendar example supplied with Development Studio) run on the same model, but with CADI and Iris interfaces used.
Note that Arm CPU models today include both CADI and Iris debug interfaces, however it is expected that these will be Iris only by end of 2020.
Arm provides a complete range of debug probes, providing high-performance debug and trace connectivity. Users may wish to use a different probe, perhaps from a different vendor or as part of an evaluation board. Development Studio provides a complete Debug Probe API, enabling developers to create support for their own probes. Using this API, support is available for ST-Link provided on most STM32 Discovery boards, and a debug connection via an FDTI USB channel to NVIDIA platforms.
Development Studio 2020.0 is available to download now for all existing users with valid support and maintenance. An update to the separate Development Studio Platinum Edition will be available soon. New to Development Studio? A free evaluation is available to try out. For more information, or to request a demonstration of the tool, please feel free to contact us.
Try Development Studio free of charge