ARM EMBEDDED SYSTEM
Published: 2023-12-26 19:16:33

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 essential for applications such as mobile phones and personal digital assistants (PDAs).

- High code density is another major feature, since embedded systems have limited memory due to cost and/or physical size restrictions. It is essential 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 a pragmatic approach to the RISC philosophy. While not strictly adhering to a purist ideal, this flexibility arguably forms its core strength, allowing it to excel in real-world applications.

**Instruction Set for Embedded Systems**
The features of ARM instruction set which makes the ARM suitable for embedded system are as follows:

- Variable cycle execution for certain instructions
- Enhance instructions
- Thumb 16-bit instruction set
- Conditional execution
- Inline barrel shifter leading more complex instructions.
Some of the ARM instructions execute in a single cycle but few instructions take more than one cycle. 

- ARM instructions are designed for flexibility in execution time, with some completing in a single cycle while others take longer, depending on the complexity of the task. For example, load-store-multiple instructions, which transfer multiple registers, can adjust their execution time based on the number of registers involved. This adaptability enhances both performance and code density, especially when dealing with sequential memory addresses.

- ARM processors incorporate an inline barrel shifter, a hardware component can manipulate data within registers before it's used by an instruction. This preprocessing capability increase the power of many instructions, leading to improved core performance and more compact code.

- The combination of these features has solidified ARM processors as one of the most widely adopted 32-bit embedded processor cores. Their adaptable execution, compact code options, efficient data handling, streamlined execution, and enhanced processing capabilities make them a preferred choice for a diverse range of embedded applications.

These additional features have made the ARM processor one of the most large commonly used 32-bit embedded processor cores. 

**Embedded System Hardware**

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3rvs4lvgexnojx2eihsq.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.

**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.