What are the different addressing modes used in Thumb State?

The Thumb instruction set used in ARM processors has a reduced number of addressing modes compared to ARM mode. This is done to compress the size of instructions when in Thumb state. The main addressing modes supported in Thumb state are: Register Addressing This is the most basic addressing mode where the operands are registers…

Arm Cortex M3 Architecture

The Arm Cortex-M3 is a 32-bit processor core licensed by Arm Holdings. It is part of the Cortex-M series of microcontroller cores, and is designed for embedded applications requiring high performance and low power consumption. The Cortex-M3 core is widely used in a variety of products including automotive engine control units, industrial automation controllers, IoT…

Arm Cortex M23 vs M3: A Detailed Comparison

The Cortex-M23 and Cortex-M3 are both ARM processor cores designed for embedded and IoT applications. The key difference between them is that the Cortex-M23 is a newer, more advanced and efficient processor core while the Cortex-M3 is an older design. In a nutshell, the Cortex-M23 offers better performance and power efficiency compared to the Cortex-M3….

Arm Cortex M3 vs M33: A Detailed Comparison

The ARM Cortex-M3 and Cortex-M33 are two popular ARM processor cores designed for embedded and IoT applications. Both offer high performance and efficiency in a small footprint, making them well-suited for constrained and battery-powered devices. The key difference between the M3 and M33 is that the M33 includes Arm’s TrustZone technology for enhanced security. This…

Debugging On-Chip Flash and RAM with Cortex-M1 and ULINK2

Debugging on-chip flash and RAM can be challenging for developers working with Cortex-M1 chips. The ULINK2 debug adapter from Keil provides an effective solution. By connecting ULINK2 to the Cortex-M1 target, developers can access the on-chip flash and RAM for debugging purposes. Introduction to Cortex-M1 and ULINK2 The Cortex-M1 processor from ARM is a 32-bit…

Invalid ROM Table Errors with Cortex-M1 and ULINK2

Seeing “Invalid ROM Table” errors when trying to debug Cortex-M1 chips using a ULINK2 debugger can be incredibly frustrating. This article will dive into the technical details behind these errors to help you understand why they occur and how to resolve them. What Causes Invalid ROM Table Errors? The Cortex-M1 processor contains a ROM table…

KEIL ULINK2 and ACTEL Cortex-M1 debugging issues

When debugging ARM Cortex-M1 chips using the KEIL ULINK2 debugger, users may encounter various issues that prevent effective debugging. The Cortex-M1 is one of the early ARM cores designed for microcontrollers and relies on ARM’s v6-M architecture. While dated, Cortex-M1 chips are still found in some legacy and commercial devices. The KEIL ULINK2 is a…

Differences between debugging Cortex-M1 and Cortex-M3 processors

Debugging any microcontroller can be challenging, but debugging ARM Cortex processors like the Cortex-M1 and Cortex-M3 adds another layer of complexity. While both processors are based on the ARM architecture, there are key differences between the two that impact the debugging process. Core Architecture The Cortex-M1 uses the ARMv6-M architecture which is a simpler, smaller…