UNIT III - Embedded Firmware Development Environment
UNIT III - Embedded Firmware Development Environment
UNIT III - Embedded Firmware Development Environment
UNIT – III
Modelling of EDLC
UNIT –III
EDLC must ensure that the development of the product has taken account of all the
quantitative & qualitative attributes of the embedded system.
Risk minimization & defect prevention through management:
The project management is essential in product development and it needed more
significance.
Project management adds an extra cost on the budget but it is essential for ensuring the
development process is going in the right direction and the schedules of the development
activity are meeting.
Projects which are complex and requires timeliness should have a dedicated & skilled
project management part & hence they are said to be ―Highly‖ bounded to project
management.
Project management is essential for predictability, coordination and risk
minimization
The time frame may be expressed in number of person days (PDS) Predictability – Analyze
the time to finish the product.
Coordination – Developers are needed to do the job
Risk management – 1. Backup of resources to overcome critical situation
2. Ensuring defective product is not developed
Increased Productivity:
Productivity is a measure of efficiency as well as Return on Investment. Different ways to
improve the productivity are:
Saving the manpower effort will definitely result increased productivity Use of automated
tools wherever is required
Work which has been done for the previous product can be used, when there is a presence of
similarities between the previous and present product. This is called as ―Re-usable effort‖.
Usage of resource persons with specific set of skills, which exactly matches the
requirements of the product. This reduces the time in training the resource. Example:
resource with expertise in zigbee wireless technology for developing a wireless interface for
the product. This kind of resource does not need training.
Requirement Analysis
Design
Development and test
Deployment
Maintenance
Complexity depends on number of phases involved in EDLC
Need:
Any embedded product may evolve as an output of a need. Need may come from an
individual or from public or from company (generally from an end user or client). Need
initiate the concept proposal. The human resource management and funding agency reviews
the concept proposal and provides the approval. Then it goes to a product development team.
The product development need can be visualized in any one of the following three needs.
a) New or Custom Product Development:
The need for a new product which does not exist in the market or a product which acts as a
competitor to an existing product in the current market will lead to the development of
completely new product. Example: Various manufacturers act as competitors in developing
the mobile phones.
b) Product Re-engineering:
The process of making changes in an existing product design and launching it as a new
version is known as re-engineering a product. It is termed as product upgrade. Re-
engineering an existing product comes as a result of the following needs.
Change in business requirements User interface enhancements Technology upgrades
c) Product Maintenance:
The technical support provides to the end user for an existing product in the market is
―Product Maintenance need‖. It has two categories 1. Corrective Maintenance deals with
making corrective actions following a failure or non-functioning. 2. Preventive maintenance
is the scheduled maintenance to avoid the failure or non-functioning of the product.
Conceptualization:
This is the product concept development phase and it begins immediately after a concept
proposal is approved. This phase defines the scope of the concept, performs cost benefit
analysis and feasibility study and prepares project management and risk management plans.
1. Planning Activity
Feasibility study – examines the need for the product and analyses the technical as well as
financial feasibility of the product under construction.
Cost Benefit Analysis (CBA) – It examines and total up the equivalent money value of the
benefits and costs of the product under consideration and provide an idea about the
worthwhile of the product. Some principles of CBA are:
Product Scope – deals with what is in scope and what is not in the scope.
o The product is feasible and proceeds to the next phase of the product life cycle.
Analysis:
Analysis and documentation – this activity consolidates the business needs of the product
under development and analyses the purpose of the product. The various requirement are:
o Functional Capabilities
o Data Requirements
o User manuals
o Operational requirements
o Maintenance requirements
Interface Definition And Documentation – This activity should clearly analyze on the
physical interface as well as data exchange through the interfaces and should document it. It
is for proper flow of data throughout the life cycle.
Defining test plan and Procedures – Master test plan consist of various type of testing in a
product development. They are: Unit testing, Integration testing and System testing.
Design:
This deals with the entire design of the product taking the requirements into consideration
and focuses on how the functionalities can be delivered. Preliminary design consists of the
list are,
This design also needs to be reviewed and get approved by the end user.
Development phase transforms the design into realizable product. Design is transformed into
hardware and firmware.
User acceptance testing – testing of the product against the criteria mentioned by the
end user or client.
A process of launching fully functional model into the market is called deployment. It is also
known as first customer shipping. The essential tasks performed during the deployment phase
are, Notification of product deployment
Product installation
Support:
This deals with the operation and maintenance of the product. Support should be providing to
the end user to fix the bugs of the product. The various activities involved in the support
phase are:
Upgrades:
Easwari Engineering College / EIE Page 8
EE8691 – EMBEDDED SYSTEMS
It deals with
Releasing of new version for the product which is already exist in the market.
Retirement/Disposal:
Everything in the world changes, the technology you feel as the most advanced and best
today may not be the same tomorrow. Due to this reason, the product cannot sustain for a
long time in the market. It has to be disposed on right time before it causes the loss. The
disposition of the product is essential due to the following reason.
In this model, each phase of EDLC is executed in sequence and the flow is unidirectional
with output of one phase serving as the input to the next phase. The feedback of each
pulse is available locally and only after they are executed.
Review mechanisms are employed to ensure that the process flow in right direction.
Bugs are not fixed immediately and they are postponed to support phase.
Advantages:
Rich documentation
Drawbacks:
Do some analysis, follow some design, the some implementation, evaluate it and based on
short comings, cycle back through and conduct more analysis, opt for new design and
implementation.
The incremental model is a superset of iterative model where the requirements are known at
the beginning.
Advantages:
Feedback is at each function. So each cycle can act as a maintenance phase for
previous cycle
Risk is spread across each individual cycle and can be minimized easily
Drawbacks:
Training is required for each new deployment at the end of each development cycle.
This model is similar to the iterative model and the product is developed in multiple
cycles
The only difference is the model produces more refined prototype of the product at
each cycle instead of just adding the functionality at each cycle like in interval model
The short comings of the protomodel after each cycle are evaluated and it is fixed in
the next cycle
After the initial requirement analysis, design is made and development process is
started. Then this prototype is sent to the customer for evaluation. The customer provides the
feedback to the developer for further improvement.
Then the developer repeat the process with some additional features and finally
delivered to the outside world
Advantages:
By using the prototype model, the risk is spread across each proto development cycle
& it is under control
Drawbacks:
Spiral Model:
Spiral model is best suited for the development of complex embedded products &
situations where the requirements are changing from customer side
either general purpose architecture class or parallel processing class. The commonly
used architectures is system design are:
1. The controller Architecture – implements the finite state machine
model using a state register holds the present state and the combinational circuits
holds the next state & output
2. The data path architecture – suitable for implementing the data flow
graph model. A datapath represents a channel between the input and output. The
datapath contains registers, counters, memories & ports. Ports connect the datapath to
multiple buses.
3. The finite state machine datapath – this architecture combines the
controller architecture with datapath architecture. The controller generates the control
input, whereas the datapath processes the data.
4. The complex instruction set computing (CISC) – this architecture
uses an instruction set for solving complex operations. The use of a single complex
instruction in place of multiple simple instructions greatly reduces the program
memory access & program memory size requirement. On the other hand, Reduced
Instruction Set Computing (RISC) architecture uses the multiple RISC instructions to
perform a complex operation. RISC architecture supports extensive pipelining
5. The Very Long Instruction Word (VLIW) – this architecture
implements functional units in the datapath
6. Parallel processing architecture – implements multiple concurrent
processing elements and each processing element may associate a datapath containing
register & local memory. Single Instruction Multiple Data (SIMD) & Multiple
Instruction Multiple Data (MIMD) architectures are examples for parallel processing
architecture. SIMD – eg: Reconfigurable process, MIMD – eg: Multiprocessor
systems
Selecting the language:
A programming language captures a ‗Computational Model‘ and maps it into
architecture. A model can be captured using multiple programming languages like C,
C++, C#, Java, etc. for software implementations and languages like VHOL, system
C, verilog, etc. for hardware implementations. C++ is a good language for capturing
an object oriented model.
A DFG model is said to be either acyclic DFG (does not contain multiple
input values & multiple output values) or non-acyclic DFG (output is
feedback to the input).
(i) State machine model:
The state machine model explains the system behaviours with states,
events, actions and transitions. The representation of a state is current
situation. An event is an input to the state. The event acts as stimulus for
state transition. The activity evolved in state machine is action. This
model is used for event driven embedded systems. Eg: control and
industrial applications.
A Finite State Machine (FSM) model is one in which the number of states
are finite. Consider the FSM model for automatic seat belt warning system
as an example.
Motor control software design is another example for state machine model.
The functions are executed in a sequential order, which is same as the conventional
procedural programming. The program instructions are iterated and executed with condition
and the data gets transformed through a series of operations. The tools for sequential program
model are FSM & flowcharts. Consider an example ‗Seat Belt warning system‘
programming.
Void seatbelt_caution ()
Waiting ( );
If (checkIgnition ( ) = = ON)
While ((check seat belt ( ) = = OFF) && (check Ignition ( ) = = OFF) &&(Timer Expire ( )
= = NO));
Stop Alarm ( );