UNIT-5 Embedded System
UNIT-5 Embedded System
P)
Notes: Unit-5
Topic
These systems are special-purpose computers that perform specific tasks and operate within a
larger system or device.
They are designed to work with limited resources, power, and memory, making them an ideal
choice for applications that require real-time processing, reliability, and efficiency.
Application development for embedded systems is a complex and critical process that
requires specialized knowledge and skills.
Embedded systems are computer systems that are integrated into other devices or products,
such as cars, appliances, medical devices, and industrial equipment.
To develop applications for embedded systems, developers need to consider various factors,
such as the system architecture, hardware and software interfaces, programming languages,
development tools, testing and debugging techniques, and deployment strategies.
2. System Design: Design the software architecture, considering components like drivers,
communication protocols, and user interfaces.
3. Software Development: Write and optimize code according to the chosen programming
language (often C/C++), keeping in mind resource constraints and real-time requirements.
4. Testing and Validation: Rigorously test the application under various conditions to
identify and address bugs, performance issues, and compatibility problems.
5. Integration: Integrate the software with the hardware, ensuring that all components work
seamlessly together.
6. Optimization: Fine-tune the code for better performance, memory usage, and power
efficiency.
7. Deployment: Deploy the application onto the target embedded system, either through
direct programming or over-the-air updates.
Real-Time: some embedded applications must receive continuous inputs, processing them,
and generate outputs of data, where such processing must be performed in a very short period
of time. As an example, some applications demand object detection in live stream videos,
where processing involves inference and bounding boxes with labels displayed on each
frame. This process must be performed as fast as possible.
Fault-Tolerance: this is the capability of an embedded system to survive in the presence of
faults. Faults can be caused by power cuts, hardware damaged parts, overwarming, and more.
The embedded software must be capable of detecting faults and make decisions according to
how critical a fault is. As an example, an embedded system working inside an airplane must
be capable of identifying any possible fault and make decisions in order to keep the aircrew
safe. Decisions can be as simple as sending an alert or as complex as performing changes in
the command control.
Portability: this is the measure of how easy it is to use the same embedded software in
multiple environments. It requires generalized abstractions between the application program
logic and the low-level system interfaces. As an example, embedded devices used in domotic
applications must be adjustable no matter the place where they have to be installed.
Reliability: this is the survival probability of the system when the function is critical during
the run time. As an example, embedded systems used in self-driven cars must be able to make
decisions in runtime, where many tasks are critical to keep passengers and pedestrians safe.
In this case, reliability must be as high as possible.
\