Wednesday, February 10, 2010

Introduction to ARM Cortex-M3

With the upcoming technologies, the market of microcontroller is growing like anything. The estimated count of shipping will be around 20 million devices by the end of 2010. To compete this challenging market the microcontroller need to be faster and equipped with many connectivity option. While performing all these feature the power consumption should be less.

By considering these feature, high performance and low power consumption, the ARM company introduced ARM Cortex-M3 processor in 2006. The Cortex-M3 processor produces excellent performance with low gate count with features available in high-end ARM controllers.

The ARMv7 has three distinct profiles:

ARMv7 A-Profile for High-end applications.ARMv7 R-Profile for Real Time applications.ARMv7 M-Profile for Low cost applications.

The ARM Cortex-M3 is based on ARMv7's M-profile. ARM Cortex-M3 designed for the Embedded Systems, where high performance with low power and low cost is expected. The targeted Embedded System for ARM Cortex-M3 are battery operated systems like Automotive systems, Remote Industrial Automation, Hand-held Devices, Wireless Applications, etc.


The ARM Cortex-M3 processor follows Harvard Architecture, with separate busses for instructions and data. The ARM Cortex-M3 has hierarchical structure include a Central Core called CM3Core and other advanced peripherals like trace, memory protection, system debug and interrupt controller. The core can read data and instructions at the same time because of Harvard architecture. This increase the performance and speed of execution of application.

The CM3Core has three stage pipeline: Instruction Fetch, Instruction Decode and Instruction Execute. The Cortex-M3 core contains a decoder for traditional Thumb and Thumb-2 instructions. An advanced ALU with support for hardware multiply and divide, control logic, and interfaces to the other components of the processor. The Cortex-M3 processor is a 32-bit processor, with a 32-bit wide data path, register bank and memory interface. There are 13 general-purpose registers, two stack pointers, a link register, a program counter and a number of special registers including a program status register. The Cortex-M3 processor supports two operating modes, Thread and Handler and two levels of access for the code, privileged and unprivileged, enabling the implementation of complex and open systems without sacrificing the security of the application.


  • Suitable for Low cost Systems

  • Greater performance without increasing the operating frequency and power requirement.

  • Low power consumption makes suitable for battery operated systems and Wireless communication

  • With Integrated Nested Vectored Interrupt Controller (NVIC), the interrupts can be serviced faster.

  • Easy for programming and debugging.

  • Many choices of development tools

No comments:

Post a Comment