ARM EMBEDDED SYSTEM AND ARM PROCESSOR FUNDAMENTALS
Published: 2024-01-08 08:05:09

Hello Readers,
My name is Sana, and I’m working at Luxoft India as a Junior Software Developer. Luxoft has given me several opportunities to work on numerous projects, which has stimulated me to discuss the crucial strategies concerned in ARM Embedded system. Here we will speak about the in-detail ARM Embedded system. You may find a fundamental article on ARM Embedded System here.

**Introduction**
The ARM processor core is a key component of most successful 32-bit embedded systems. ARM cores are widely used in mobile phones, organizers, and a multitude of other everyday portable consumer devices.
The first ARM1 prototype was designed in 1985. Over 1 billion ARM processors had been delivered worldwide by the end of 2001. The ARM Company bases their success on a simple and powerful original design, which continues to improve today through the constant technical innovation. In fact, the ARM core is not a single core, but a whole family of designs sharing similar design principle and a common instruction set.
In this Article we discuss initially an overview of ARM design philosophy, an example of embedded device and its typical hardware and software technologies that surrounded an ARM processor. Then we discuss a brief description of ARM core model with its registers, mode and pipeline.

**ARM Design Philosophy**
There are many special features that have driven the ARM Processor design.
They are as follow:

- Power consumption

- Code density

- Price

- Size

- Debug technology

- Core processor

The above listed parameters for the ARM designs philosophy is clearly illustrated below.

Portable embedded systems require battery power. The ARM processor has been specially designed to reduce power consumption. It is important for applications such as mobile phones and personal digital assistants.

High code density is another crucial feature, since embedded systems have limited memory due to cost and  physical size restrictions. It is necessary for applications such as mobile phones and mass storage devices.

Embedded systems are price sensitive
And use slow and low-cost memory devices. For high volume Application to get substantial savings essential for high-volume applications like digital cameras, every cent has to be accounted for in the design.

And, reduce the area of embedded processor; smaller the area used by the embedded processor, reduced cost of the design and manufacturing for the entire product.

ARM has equipped its processors with hardware-level debugging mechanisms to provide software engineers with a clear view of code execution, streamlining problem identification and resolution.

The integrated debugging tools within ARM processors empower software engineers to delve deeper into code behavior during execution, fostering a more efficient and streamlined debugging workflow.

The ARM core is not a pure RISC architecture because of the ARM core adopts the RISC philosophy. This flexibility arguably forms its core strength, allowing it to excel in real-world applications.

**Embedded System Hardware**

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zvrtkc9991nl4gl9xtuy.png)

From small sensors found on a production line, to the real-time control systems used on a NASA space probe are controlled by the Embedded systems. All devices use a combination of software and hardware components.

The above Figure shows a typical embedded device based on an ARM core. Each block does specific function. The lines connecting the blocks are the buses carrying data. The embedded System hardware is divided into four main hardware components. They are;

ARM processor
Controllers
Peripheral and
Bus
The embedded device is mainly controlled by the ARM processor. Different version of ARM processor are available to suit the desire operating characteristics. An ARM Processor comprises a core and Peripheral. The core is an execution engine that processes instruction and manipulates data. The peripheral are the surrounding components that interface it with a bus, such as memory management and caches.
Controller are mainly used to coordinate important functional blocks of the System. Interrupt and memory controllers are the two commonly used controller.
The peripheral provide all the input-output capability external to the chip and are responsible for the uniqueness of the embedded device.
A bus is used to communicate between different parts of the device i.e., to exchange the data between the device.

**Embedded System Software**


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tgacppz1yzsrr44nmgk0.png)


To derive an embedded system the software is needed. Figure shows the block diagram of typical software components required to control an embedded device. It mainly consists of four typical software components. Each software component in the stack uses a high level of abstraction to individual the code from the hardware device.
The first code To ensure a smooth transition to the operating system, the board first executes target-specific initialization code, which establishes a baseline hardware configuration.
An infrastructure to control application is being provided by the operating system. The operating system also handle hardware system resources. Many embedded system do not have a full operating system but  a simple task scheduler that is either event or poll driven.
Device drivers act as a bridge, offering a unified software interface for interacting with the various peripherals attached to the hardware. Applications, such as a diary app on a mobile phone, carry out specific tasks that fulfill the device's intended purpose. The operating system acts as a coordinating the execution of multiple applications that may be running concurrently on a single device. Software components can reside in either ROM (firmware) for permanent storage, like the initialization code, or RAM for temporary execution.

**Conclusion**
The embedded device is mainly controlled by the ARM processor. Different version of ARM processor are available to suit the desire operating characteristics. An ARM Processor comprises a core and Peripheral. The core is an execution engine that processes instruction and manipulates data. The peripheral are the surrounding components that interface it with a bus, such as memory management and caches.

This is part 1 of the ARM Embedded System

This will be continued in the next article, including examples. Please let me know if you have any queries.
Thanks for reading.