Jyothishmathi Institute of Technology & Science: Unit V ARM Cortex-M3 Processor
Jyothishmathi Institute of Technology & Science: Unit V ARM Cortex-M3 Processor
Jyothishmathi Institute of Technology & Science: Unit V ARM Cortex-M3 Processor
Karimnagar
Unit V
Advanced ARM Processors: Introduction to CORTEX Processor and its architecture
Greater performance efficiency: allowing more work to be done without increasing the
frequency or power requirements
Low power consumption: enabling longer battery life, especially critical in portable
products including wireless networking applications
Enhanced determinism: guaranteeing that critical tasks and interrupts are serviced as
quickly as possible and in a known number of cycles
Improved code density: ensuring that code fits in even the smallest memory footprints
Ease of use: providing easier programmability and debugging for the growing number of 8-
bit and 16-bit users migrating to 32 bits
Lower cost solutions: reducing 32-bit-based system costs close to those of legacy 8-bit and
16-bit devices and enabling low-end, 32-bit microcontrollers to be priced at less than US$1 for
the first time
Wide choice of development tools: from low-cost or free compilers to fullfeatured
development suites from many development tool vendors.
Figure :The Relationship between the Thumb Instruction Set in Thumb-2 Technology and the Traditional Thumb.
The extended instruction set in Thumb-2 is a superset of the previous 16-bit Thumb
instruction set, with additional 16-bit instructions alongside 32-bit instructions.
It allows more complex operations to be carried out in the Thumb state, thus allowing
higher efficiency by reducing the number of states switching between ARM state and Thumb
state. Focused on small memory system devices such as microcontrollers and reducing the size
of the processor, the Cortex-M3 supports only the Thumb-2 (and traditional Thumb) instruction
set. Instead of using ARM instructions for some operations, as in traditional ARM processors, it
uses the Thumb-2 instruction set for all operations. As a result, the Cortex-M3 processor is not
backward compatible with traditional ARM processors.
With support for both 16-bit and 32-bit instructions in the Thumb-2 instruction set, there
is no need to switch the processor between Thumb state (16-bit instructions) and ARM state (32-
bit instructions).
For example, in ARM7 or ARM9 family processors, you might need to switch to ARM state
if you want to carry out complex calculations or a large number of conditional operations and
good performance is needed, whereas in the Cortex-M3 processor, you can mix 32-bit
instructions with 16-bit instructions without switching state, getting high code density and high
performance with no extra complexity.
The Thumb-2 instruction set is a very important feature of the ARMv7 architecture.
Compared with the instructions supported on ARM7 family processors (ARMv4T architecture),
the Cortex-M3 processor instruction set has a large number of new features.
For the first time, hardware divide instruction is available on an ARM processor, and a
number of multiply instructions are also available on the Cortex-M3 processor to improve
data-crunching performance. The Cortex-M3 processor also supports unaligned data accesses, a
feature previously available only in high-end processors.
The MPU
The Cortex-M3 has an optional MPU. This unit allows access rules to be set up for
privileged access and user program access.
When an access rule is violated, a fault exception is generated, and the fault exception
handler will be able to analyze the problem and correct it, if possible.
The MPU can be used in various ways. In common scenarios, the OS can set up the MPU
to protect data use by the OS kernel and other privileged processes to be protected from
untrusted user programs.
The MPU can also be used to make memory regions read-only, to prevent accidental
erasing of data or to isolate memory regions between different tasks in a multitasking
system. Overall, it can help make embedded systems more robust and reliable.
Debugging Support
The Cortex-M3 processor includes a number of debugging features, such as program
execution controls, including halting and stepping, instruction breakpoints, data
watchpoints, registers and memory accesses, profiling, and traces.
The debugging hardware of the Cortex-M3 processor is based on the CoreSight
architecture.