Embedded System Design
Embedded System Design
Embedded System Design
ASSIGNMENT 1
VAISHNAVI M-23MZ42
The capabilities of one Cortex-M based microcontroller from one vendor can be significantly
different from another microcontroller from a different vendor.
This flexibility also provides the microcontroller manufacturers an opportunity to include
additional features in their products making them more suitable for a specific market.
The ARM architecture is one of the most widely adopted architectures.
One of the early ARM architectures was ARMv4/v4T.
Processors based on this architecture have been divided into the followingthree profiles:
Cortex-M profile: Processors in this profile are designed for microcontroller based embedded systems.
Cortex-A profile: This profile is aimed for addressing the high performance applications mainly covering
the cellular market.
Cortex-R profile: Addressing the demands of real-time applications is the main motive of this profile.
Microprocessor Architecture
The Cortex-M profile microcontrollers are based on a 32-bit RISC processor architecture.
Currently, Cortex-M processor cores consists of Cortex-M0,Cortex-M1, Cortex- M3 and Cortex-M4
families.
Cortex-M0, and Cortex-M1 belong to ARMv6 architecture familywhile Cortex-M3 and Cortex-M4 are
based on ARMv7 architecture.
The key difference between Cortex-M3 and Cortex-M4 is the inclusion of DSP instructions in the latter.
Furthermore, in Cortex-M4F, ‘F’ signifies the presence of an optional floating point unit (FPU), which will
be absent in a Cortex-M4 processor.
Different features supported by an ARM processor are appended as part of the name.
For instance, in ARM7TDMI processor ‘T’ signifies the Thumb instruction set architecture, ‘D’ represents
Debug interface (JTAG), ‘M’ shows the integration of fast Multiplier and ‘I’ indicates theinclusion of ICE
(in-circuit emulator).
Cortex-M is designed for microcontroller applications with a focus on real-time and low-power
requirements. In contrast, Cortex-A is designed for application processors used in more complex
computing environments, such as smartphones and tablets.
The x86 architecture is prevalent in desktop and server environments, whereas Cortex-M is optimized
for embedded and microcontroller applications. x86 processors are generally more powerful but may
consume more power and are not as well-suited for low-power and real-time applications.
ARM processors deal with a single processor at a time, which makes it faster and it also
consumes lesser power.
ARM processors work in the case of a multiprogramming system, where more than one
processor is used to process information.
ARM processors are cheaper than other processors, which makes them usable in mobile
phones.
ARM processors are scalable, and this feature helps it in using a variety of devices.
ARM processors are not stable with x86 processors, and due to this, they cannot be used in
Windows Systems.
ARM processors are not capable of very high performance, which limits them to a variety of
applications.
ARM processor execution is a little hard, which requires skilled programmers to use it.
ARM processor is inefficient in handling Scheduling instructions.
Features:
µVision IDE: Keil MDK uses the µVision IDE, which provides a user-friendly interface for editing,
compiling, and debugging code.
Compiler: Keil includes the ARM C/C++ compiler, which is optimized for ARM architecture.
Debugger: µVision Debugger supports real-time and hardware debugging. It offers features like
breakpoints, watchpoints, and code stepping.
Simulation: Keil provides a simulator for ARM processors, allowing developers to test code without
hardware.
Peripheral Simulation: It includes a tool called "System Viewer" for visualizing the behavior of ARM
Cortex-M systems.
CMSIS (Cortex Microcontroller Software Interface Standard): Keil supports CMSIS, which is a
standardized hardware abstraction layer for Cortex-M processors.
Target Audience: Keil MDK is widely used for developing embedded systems and IoT applications using
ARM Cortex-M microcontrollers.
Features:
Eclipse-based IDE: Arm DS-5 is built on the Eclipse framework, providing a familiar environment for
many developers.
Compiler and Debugger: It includes the ARM Compiler and DS-5 Debugger for efficient code
development and debugging.
Streamline Performance Analyzer: This tool helps analyze system performance, identify bottlenecks, and
optimize code.
System and Memory Viewers: DS-5 includes tools for visualizing and analyzing system behavior and
memory usage.
Real-Time System Model (RTSM): DS-5 supports the use of ARM Fast Models, allowing developers to
simulate and debug software on virtual platforms.
Support for ARM Architecture Variants: DS-5 is versatile, supporting various ARM architecture variants,
including ARM Cortex-A, Cortex-R, and Cortex-M.
Target Audience: Arm DS-5 is suitable for a broader range of ARM-based systems, including both
microcontrollers and application processors.