Skip to main content

Embedded software development process

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.

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

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:

 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.

✓ Answer checked by Claude Opus 5.5 (high effort)

All Embedded System chapter 3 questions →