---
title: "Embedded software development process"
subject: "Embedded System"
chapter: 3
key: "semester_6/embedded_system:software-development-flow"
source: https://www.bctengineer.com/q/semester_6/embedded_system/software-development-flow
site: BCT Engineering
---

# Embedded software development process

Embedded System · Chapter 3: Software Design Issues

- Asked in: 2069 Bhadra, 6 marks; 2073 Magh, 4 marks; 2074 Bhadra, 4 marks (asked 3 times)
- Answer checked by Claude Opus 5.5 (high effort) on 2026-10-14
- Page: https://www.bctengineer.com/q/semester_6/embedded_system/software-development-flow
- Whole chapter: https://www.bctengineer.com/md/semester_6/embedded_system/chapter-3

## Question

Explain the design flow (software development processes) of embedded software development.

## Short answer

Embedded software development flow: requirements analysis, design, coding, cross-compile/assemble, link/locate, simulate on host, download to target, debug using ICE/JTAG, test, and release/maintenance. It uses a host PC for development and target hardware for deployment.

## Answer

Embedded software is developed on a **host** (PC) and run on a **target** (the embedded board), so extra stages are needed compared with ordinary software. The usual flow is:

```text
 Requirements -> Design -> Coding -> Cross compile/assemble
      -> Link and locate -> Simulate/test on host
      -> Download (burn) to target -> Debug and test -> Maintain
```

1. **Requirement analysis and specification:** determine functions, timing, memory, power and cost constraints.
2. **Design:** divide into hardware/software, choose processor and RTOS; design modules, state machines and flowcharts.
3. **Coding:** write source code in assembly, C or C++, one module per function.
4. **Cross compiling/assembling:** a cross compiler on the host generates object code for the target processor.
5. **Linking and locating:** the linker joins object files and libraries; the locator assigns real ROM/RAM addresses to code, data and stack, producing the final hex/binary file.
6. **Simulation:** test logic on the host with an instruction-set simulator before hardware is ready.
7. **Download to target:** burn the image into ROM/flash with a programmer, or load through bootloader/JTAG.
8. **Debugging on the target:** use an in-circuit emulator (ICE), JTAG debugger, monitor program, logic analyser, with breakpoints and single stepping.
9. **Testing and verification:** unit, integration, system and acceptance tests against requirements.
10. **Release and maintenance:** documentation, bug fixing and upgrades via firmware updates.

## Check yourself

The answer's key points as multiple-choice questions, with the correct option and why.

1. Why does embedded development need extra stages?
   A. It runs on the same PC
   B. No compiler is used
   C. Hardware is never needed
   D. Code is developed on a host PC and run on a separate target board
   Answer: D. Cross-compilation, downloading and target debugging are needed. (Key point: Host and target)

2. What does a cross compiler do?
   A. Runs on the host and generates object code for the target processor
   B. Runs on the target to compile code
   C. Links the files
   D. Burns the ROM
   Answer: A. It produces code for a processor different from the host's. (Key point: Cross compiler)

3. What does the locator do?
   A. Checks syntax
   B. Assigns real ROM/RAM addresses to code, data and stack
   C. Burns flash
   D. Tests logic
   Answer: B. Linking and locating produce the final hex/binary file. (Key point: Locator)

## Related in Embedded System

- [Spiral model of embedded software life cycle](https://www.bctengineer.com/question.md?key=semester_6%2Fembedded_system%3Aspiral-model-esdlc) — Embedded System, chapter 3
- [Design metrics of embedded system](https://www.bctengineer.com/question.md?key=semester_6%2Fembedded_system%3Adesign-metrics-embedded) — Embedded System, chapter 1, asked 3×
- [Algorithm/pseudo-code for software PID](https://www.bctengineer.com/question.md?key=semester_6%2Fembedded_system%3Apid-software-algorithm) — Embedded System, chapter 7, asked 3×
- [Process versus thread differences](https://www.bctengineer.com/question.md?key=semester_6%2Fembedded_system%3Aprocess-vs-thread) — Embedded System, chapter 6, asked 4×
- [Process vs thread and task states](https://www.bctengineer.com/question.md?key=semester_6%2Fembedded_system%3Aprocess-thread-and-task-states) — Embedded System, chapter 6
- [Process management in OS](https://www.bctengineer.com/question.md?key=semester_6%2Fembedded_system%3Aprocess-management) — Embedded System, chapter 6

## Related in other subjects

- [Development process and mapping design to code](https://www.bctengineer.com/question.md?key=semester_6%2Fobject_oriented_analysis_and_design%3Adevelopment-process-map-design-code) — Object Oriented Analysis and Design, chapter 4
- [Spiral model of software development](https://www.bctengineer.com/question.md?key=semester_5%2Finstrumentation_ii%3Aspiral-model) — Instrumentation II, chapter 9, asked 3×
- [Why software development is complex; man-month myth](https://www.bctengineer.com/question.md?key=semester_5%2Fsoftware_engineering%3Acomplex-development) — Software Engineering, chapter 1
- [Embedded real-time software; model for project](https://www.bctengineer.com/question.md?key=semester_5%2Finstrumentation_ii%3Aembedded-rt-software-model) — Instrumentation II, chapter 9
