0% found this document useful (0 votes)
28 views

Software Development Process

The document discusses the stages of the embedded software development process including ideation, technical specification, architecting the solution, component selection, testing, implementation, prototyping, field trials, improvements and release. It also describes the compiler, linker and loader processes involved in embedded software development.

Uploaded by

Vamsidharan v
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
28 views

Software Development Process

The document discusses the stages of the embedded software development process including ideation, technical specification, architecting the solution, component selection, testing, implementation, prototyping, field trials, improvements and release. It also describes the compiler, linker and loader processes involved in embedded software development.

Uploaded by

Vamsidharan v
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 24

SOFTWARE DEVELOPMENT

PROCESS IN EMBEDDED SYSTEMS


Embedded Software Development Process

• An embedded system design process is how a


manufacturer determines the requirements
for a small computerized system embedded
within a product.
Stages of embedded system development
process
Stages of Embedded system Development
Process
• Ideation/purpose of the product
• Technical specification
• Architecting the Solution
• Component section & design finalization
• Test Plan
• Design implementation
• PoC / Prototype Development
• Field Trials
• Final Product Improvements
• Product Release
Ideation
• The stage where an idea is discussed with all the stakeholders
and brain-stormed to conclude if the idea is worth taking to the
development stage.
• Market data is collected from online research, interviews with
potential customers, prospects, other people facing market to
make a case with two important points:
• Problems the product will solve. All features of the products
could be segmented into urgent needs, good to have and luxury.
More you are solving urgent needs better the response from the
market would be for the product.
• The price at which the customer would be willing to pay for
solving the problem. The cost of manufacturing & selling the
product should be 50% of the actual price to the customer at
<1000 units volume as a thumb rule. For higher volumes, the
price will be less.
Detailed Technical Specification

• A detailed technical design requirement


specification document should be created.
• Product spec should cover the main things like
the purpose of the product, block diagram,
main features, environmental conditions,
manufacturing requirements, etc.
Architecting the Solution

• After finalizing a detailed technical specification


document, it’s time to architect the solution.
• On a high level, how the design will look like,
what are strategies you will use to build a
solution, which type of power supply, which
type of wired or wireless connectivity you will
use, how the firmware design will look like,
Mobile App/PC software/cloud-based
application design needs to be decided.
• For the hardware design part, this forms the
basis for the next step which is selecting the
appropriate component for each block or part
of the circuit based on various critical
parameters like quality, size, features, cost,
etc.
Component Selection & Design Finalization

• Once the architecture is done, engineers need to


look at each block in the system and select the
components and finalize the design.
• An engineer in this stage will decide, for example,
a power supply which type of power supply needs
to be designed like using a linear regulator or
using a DC-DC switching converter or with
something else and then which power chip need
to used and its application circuit, everything is
decided here.
Creating a Test Plan

• For any embedded product, you need to define


a proper testing plan, it should cover the
following:
Hardware design validation
Software design validation
Production level product testing
• Creating a test plan before design
implementation helps incorporate any changes
if required in the design to enable the testing.
Design Implementation: Hardware, Firmware, software, Enclosure
Design

• It is the core engineering stage of the implementation.


Here the architecture is converted into the design.
• For hardware: schematic capture, PCB layout will be
done. MCU firmware & if any software is required will be
developed. Enclosure design work will also come into
this stage.
• A necessary review system needs to be put in place to
ensure first time right is developed.
• If an external consultant is required for the design
reviews, one should not hesitate, most of the time it’s
worth the investment.
Proof of Concept, Prototype Development & Testing

• If the design is completely new or if you don’t have the


confidence on the full-design or a part of the design, it is a
good idea to build the prototype first to prove the design and
while doing so see if there are any issues.
• Some times buying readily available block level modules
(power supply, MCU, Wireless modules, etc.) and connecting
them to form a system, writing a basic firmware and testing in
a simulated environment helps gain initial confidence on the
design’s performance.
• This could save a huge amount of money, effort and time
• Once this is proven, you can build the prototype and test it
again for the functionality & the environmental conditions.
Field Trials

• Few product works well in their lab but has issues in


the field.
• Field conditions are different, engineers need to think
through what all conditions their product will go
through in the field so that they can reproduce those
conditions and check the performance of their product
even before sending their product out in the field.
• Not only field conditions but the user is also different.
Engineers need to think of how a layman will handle
their product in the field.
• Example: If a power supply connections need to be
done in the field, it is a good idea to have over-
voltage and reverse-polarity protection for the
power supply input. Imagine a layman in the field
connecting the wrong power supply (high voltage)
or connecting reverse may damage the product.
• For the same reasons many companies provide
power supply also along with the product and have
a mating connector that can connect in one
direction only, so it eliminates the possibility of
wrong power supply or a reverse connection. But,
not in all products this is possible to achieve.
• Another example is, if the product has
wireless connectivity (ex: GSM/GPRS), the
signal strength or reliability of the connection
will depend on the coverage area. Many times
it is not easy to have this replicated in the lab
so a field test is necessary to the performance
and how your product is handling all the
scenarios.
Final Product Improvements

• After field trials are done for several weeks


and months, all the improvement needs to be
incorporated in the design based on the
feedback.
• If during field trials some issues are found, you
will need to also improve the test procedures
you follow during the design validation/
production testing stage to ensure a flawless
product comes out of production.
Product Launch

• Before launching the product, several other


things need to be put in place other than the
product itself like:
• Various product certifications based on
features it has and the countries it will be sold
in.
• Documentation: Product page on the website,
Quick introduction video, Datasheet, User
guide, Setting up the Support channel, etc.
Embedded Soft ware Development
Process
• Each of the source files must be compiled or assembled
into an object file.
• All of the object files that result from the first step must
be linked together to produce a single object file,
called the relocatable program.
• Physical memory addresses must be assigned to the
relative offsets within the relocatable program in a
process called relocation
10
4
Cont…
□ The result of the final step is a file containing an executable
binary image that is ready to run on the e m b e d d e d
system

21
COMPILER

• A compiler is a special program that processes


statements written in a particular programming
language and turns them into machine
language or "code" that a computer's
processor uses.
• GNU C compiler-AVR, Intel x86, MIPS,
PowerPC, ARM, and SPARC
LINKER
• A linker or link editor is a computer system
program that takes one or more object files
(generated by a compiler or an assembler) and
combines them into a single executable file,
library file, or another "object" file.
LOADER
• A loader is a system program, which takes the
object code of a program as input and
prepares it for execution.
• Programmers usually define the Program to be
loaded at some predefined location in the
memory.

You might also like