The STM32MP1 series of general-purpose devices are based on heterogeneous Cortex-A7 and Cortex-M4 cores. These devices are supported by both the Arm Development Studio and Keil MDK toolchains, and either could be used, depending on your use case. Both feature the industry leading Arm Compiler for best in class code size and performance, as well as fully featured debugging environments. For a deeper discussion on the differences between Development Studio and MDK, please see my previous blog, Arm Development Studio or MDK? Which should you choose?. Note that a Development Studio license will also enable Keil MDK.
For many users, the Cortex-A7 will run a pre-supplied Linux image, and so will only develop embedded code for the Cortex-M4. For this use case, MDK may be sufficient, and is thoroughly documented by this Application Note. You may also wish to check out this on-demand webinar demonstrating this use case. Software packs allow users to easily create and manage advanced projects.
The µVision IDE has support for the ulink family of debug adapters, as well as various others from other vendors, including ST-Link, commonly implemented on low cost evaluation boards. This will likely be familiar to users of STM32 MCUs, as MDK has supported these devices since their inception, totaling 1300+ devices today.
For users who are developing software for both the Cortex-A and Cortex-M, then Development Studio, which can support all Arm processors, is an excellent choice. The Arm Debugger provides the capability to simultaneously debug all Arm processors in the heterogeneous device. This tool can be used for kernel and device driver development, as well as Linux application debug via gdbserver. It can also be used for RTOS and bare-metal development on any CPU in the system.
With Development Studio 2019.0 and subsequent releases, we provide some out-of-the-box bare-metal examples and debug configurations, verified on the STM32MP157C evaluation board. These examples include illustrative use of ITM and STM, which are both present on the STM32MP1, and can be used for non-intrusive printf style logging in your application, collected in the trace stream, and visualized in the Events pane of the debugger.
Connection to the board can be via the ULINK or DSTREAM family of devices. In the below, One can easily connect to, debug, and trace all the components in the system simultaneously. The below shows trace from the Cortex-A7 (upper left), Cortex-M4 (lower left), and the STM (right side) using the provided examples (edited to loop forever), collected via the DSTREAM-PT debug and trace probe.
Development Studio also has support for software packs. Users can take advantage of these to reuse code examples you may have from MDK, perhaps from previous STM32 projects. Navigate to the Software Pack Manager perspective in the IDE, and you will find appropriate device packs for this platform. Expect more to become available in the future. As these packs are maintained externally to the tool, updates will be automatically available as they are released.
You may note that some of the projects are supplied as µVision projects, some as Development Studio projects. Development Studio can import and convert the µVision projects as necessary. The IDE allows the user to manage the software components of the project in a similar way to MDK does.
Similarly the software pack description of the device can be used to further simplify the debug configuration.
Regardless of how you connect, the same powerful debug features of the tool will be available to you.
I did not discuss in detail here, but both MDK and Development Studio use the latest Arm Compiler by default to build their projects. This leading edge compiler provides the best code size and performance available. To learn more, I recommend this blog.
Arm Development Studio featuring Keil MDK provides a complete scaleable solution to match your development needs for any Arm based system. Ever more integrated and complex devices are becoming commonplace and Arm has all the capabilities necessary to be on the leading edge supporting them. If you have not already, we invite you to take a free evaluation of Development Studio, which will also enable MDK (downloadable separately).
Evaluate Development Studio now
* banner image adapted from version on ST website
Yes, that is a perfect use case!
Using this Development studio can we develop Bare metal code for Cortex A7 and execute the same for both the cores in A7
Update: Development Studio 2020.0 (and later) add support for ST-Link connectionscommunity.arm.com/.../development-studio-2020-0