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.
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 ratings0% 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.
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.