SWD-Port of the Cortex-M0: Cannot connect to MEM-AP on Cortex-M0 Designstart Eval

The “SWD-Port of the Cortex-M0: Cannot connect to MEM-AP on Cortex-M0 Designstart Eval” error indicates an issue with connecting to the memory access port (MEM-AP) when trying to debug or program a Cortex-M0 microcontroller over the Serial Wire Debug (SWD) interface. This is commonly seen when using development boards like the DesignStart Eval board with…

How to Activate the Debug Viewer for Cortex-M0?

The Cortex-M0 is an ultra low power 32-bit ARM processor core designed for microcontroller applications. It is optimized for low cost and low power embedded systems. To aid in development and debugging of Cortex-M0 based systems, ARM provides a debug interface and viewer software. The debug viewer allows developers to view the processor state, memory,…

Cortex M0+, AHB state during Exception

The Cortex-M0+ processor from Arm is an ultra low power 32-bit RISC CPU core designed for microcontroller applications. It builds on the success of the earlier Cortex-M0 core by adding new features like dual-issue pipeline, configurable memory protection unit, and higher energy efficiency while maintaining full code compatibility with Cortex-M0. One key aspect of Cortex-M0+…

How generic are Cortex-M0+ MCUs?

Cortex-M0+ microcontrollers (MCUs) from ARM offer a good balance of performance, power efficiency, and cost for a wide range of embedded applications. While there are some common features across Cortex-M0+ chips, there can also be significant differences between models from different manufacturers. Overall, Cortex-M0+ strikes a compromise between customization and generalization. Common Features of Cortex-M0+…

ARM Cortex M0(PGA970) set Primask/disable interrupts

The ARM Cortex-M0 is an ultra low power 32-bit ARM processor core designed for microcontrollers and deeply embedded applications. It features a reduced instruction set computing (RISC) architecture and a flexible interrupt controller for rapid response to real-time events. The PGA970 is a specific implementation of the Cortex-M0 core by NXP Semiconductors. A common need…

Faster way of multiplying 2 32-bit numbers giving a 64-bit result in Cortex M0/M0+

Multiplying two 32-bit numbers to get a 64-bit result is a common operation in many embedded and IoT applications running on Cortex M0/M0+ chips. The default 32×32->64-bit multiplication opcode provided by ARM takes 32 clock cycles to complete, which can be slow for time-critical code. This article discusses techniques to significantly speed up 32-bit multiplication…