Chap 7&8
Chap 7&8
Chap 7&8
1
Outlines
• Introduction
• Embedded Systems Design methodology
• Embedded Systems Development Tools
• Testing and Verification
• Networked Embedded system
2
Introduction
Unlike the design of a software application on a standard
platform, the design of an embedded system implies that
both software and hardware are being designed in
parallel.
4
Embedded systems development life cycles
5
❑Product specification:
This phase involves gathering and defining the
requirements and specifications for the embedded
system.
It includes understanding the purpose of the system,
its intended environment, performance requirements,
interfaces, power constraints, such as cost, power
consumption, and size.
Clear and comprehensive specification documentation
is essential to guide the subsequent design and
development phases. 6
❑HW/SW partition:
Once the specifications are defined, the next step is
to partition the system into software and hardware
components.
This involves deciding which functionalities should be
implemented in software and which should be
implemented in hardware, based on factors like
performance, power consumption
Effective partitioning aims to optimize system
performance, resource utilization, and overall cost.
7
Hardware/Software Partitioning:
Since an embedded design will involve both
hardware and software components, someone must
decide which portion of the problem will be solved in
hardware and which in software.
Many embedded system designs are required to be
Price sensitive
Leading-edge performers
Market competitive
8
Iteration and Implementation:
Before delving into detailed design, concepts undergo
iterations and validations through simulations.
This means that the design team revisits and iterates upon
the initial ideas,
And making adjustments and improvements based on
feedback, new insights, or changing requirements.
This iterative process helps refine the design, ensuring that
it meets performance and functionality requirements .
9
Independent HW/SW Design:
14
Embedded systems development tools
Once the program seems to be working and the programmer is happy with
it, the executable code is loaded to the target microcontroller chip using a
device programmer, and the system logic is tested.
16
Embedded systems development tools
Software development tools:
18
Testing Embedded Systems
Testing: is an organized process to verify the behavior,
performance, and reliability of a device or system against
designed specifications.
It is a manufacturing step to ensure that the manufactured
device is defect free and it is one of the detective measures
Verification or debugging: is the process of removing
defects (bugs) in the design phase to ensure that the
synthesized design, when manufactured, will behave as
expected and
it is one of the corrective measures of quality.
19
Testing vs Verification
Verification Testing
20
Fault, Error and Failure
Incorrectness in systems may be described in different terms as fault, error
and failure.
Errors are usually associated with incorrect values in the system state.
22
Fault Classifications
Some examples of hardware failure modes:
Electrical failure: short-circuiting, too high voltage/current
Mechanical failure: jamming of a valve
Temperature effects: deformation of components
Material failure: corrosion
Some examples of software failure causes are:
Deadlock: two or more processes are each waiting for the other to finish, so
none of the processes ever finish.
Resource starvation: a process doesn't get the resources it needs, so it can
never finish.
Too small memory
Noise
Shared interfaces with other systems
23
Fault Classifications
Based on duration of faults: Transient, Intermittent, Permanent
25
Methods for Minimizing Faults
1) Fault Prevention
Fault Prevention has Two stages: Fault avoidance and Fault removal
A. Fault Avoidance:
B. Fault Removal:
27
Networked Embedded Systems
They may or may not have smaller or less complex subsystems running
to create the network. Examples include home security systems and heat
sensor systems.
28
Reading Assignment
29