You are no doubt aware that Arm processors come in all sizes, the Cortex-A profile provide the highest performance, often implemented in multi-core configurations, with functionality to support rich operating systems. The Cortex-R profile target hard real-time applications, and Cortex-M for the lowest power, deeply embedded solutions.
You have also likely noticed an ever-increasing convergence of technologies, and more functionality going into existing systems. A coffee maker may now have an advanced user interface, and even be connected to the internet. To address the needs of such systems, there is a trend among silicon vendors to provide devices that consolidate what would previously been implemented by different components.
These heterogeneous devices commonly include (clusters of) Cortex-A processors combined with one or more Cortex-M processor such as the latest platforms STM32MP1 and i.MX 8M Mini. Though it could be any combination of processors that you can imagine. The benefits these devices offer go well beyond the bottom line, offering enhanced security for your data, convenient sharing of system resources, and a unified debug infrastructure.
The Arm Debugger, provided as part of Arm Development Studio is designed to be easy to use with the latest Arm cores, in the most complex, arbitrary configurations. There is out-of-the-box configurations available for almost 6000 devices, including a number of heterogeneous SoCs, alongside powerful utilities to define your own as needed.
The debugger provides both low-level functionality (viewing registers, memory, cache data for example) and higher level features such as OS awareness, stack views, and code instrumentation. These capabilities extend to the separate connections of each CPU in the system, meaning that even if they are running entirely different software stacks, the data displayed can be formatted appropriately for each. The below shows an example of a Cortex-A running Linux in parallel with a Cortex-M running an RTOS. See that the debugger is connected to both processors simultaneously, with OS awareness of each software stack.
Many systems can generate trace, giving the execution history of the processors. In a heterogeneous system the processors are likely running asynchronously, with different clock speeds. Trace can be simultaneously collected from each source (perhaps with the new high-performance parallel trace DSTREAM-PT hardware unit) and synchronized via timestamps to analyze what each was doing at the same point in time.
Development Studio contains the latest Arm Compiler, and is optimized for embedded applications, giving the best performance at the lowest footprint. For more information on the latest compiler release, I recommend reading my colleague's blog post on Arm Compiler 6.11. We know also that many users may select to run Linux (or Android) on the applications processor. The open source GCC compiler is the recommended build tool for this scenario. Developer Studio Bronze Edition was created for this purpose, providing the Arm Compiler for building bare-metal or RTOS based code to run on the Cortex-M, along with a comprehensive debug environment for the entirety of the system, including the Linux kernel and application space. Users developing kernel modules and device drivers, as well as applications, can now more readily get access to the power of the Arm debugger.
Are you attending Embedded World this year? Please come to the Arm booth (hall 4, booth 140) to see Development Studio in action supporting such platforms.
We also invite you to try it out for yourself, by downloading a free 30-day evaluation version of Development Studio.
[CTAToken URL = "https://developer.arm.com/products/software-development-tools/arm-development-studio/evaluate" target="_blank" text="Download free trial" class ="green"]