Embedded Software

Embedded software is specialized code designed to run on a piece of hardware that isn’t a general-purpose computer. It’s written to perform a single, dedicated function or a small set of functions, often with real-time constraints.

This software is “embedded” within the device it controls. Unlike an app on your phone that you can install or delete, embedded software is a permanent part of the machine’s core operation.

Key Characteristics

  • Purpose-Built: It does one specific job, like controlling a car’s brakes or managing a coffee machine’s brewing cycle.
  • Hardware-Dependent: The software is tightly coupled to the specific hardware (the microcontroller and peripherals) it runs on.
  • Resource-Constrained: It must operate efficiently with limited memory (RAM), processing power (CPU), and storage.

Examples of Embedded Software

Embedded software is in most electronic devices that are in use.

Consumer Electronics:

  • The operating system in your smart TV.
  • The firmware in a digital watch or fitness tracker.
  • The control logic in a microwave, washing machine, or digital camera.

Automotive:

  • Engine Control Unit (ECU): Manages fuel injection, ignition timing, and emissions.
  • Anti-lock Braking System (ABS): Prevents the wheels from locking up during braking.
  • Infotainment System: Controls the GPS, radio, and user interface on the dashboard screen.

Medical Devices:

  • The code running on a pacemaker that regulates a person’s heartbeat.
  • The software in an insulin pump that delivers precise doses of medication.

Aerospace and Defense:

  • The flight control systems (fly-by-wire) in modern aircraft.
  • The guidance software in a drone or satellite.

The following sections gives the reader a comprehensive understanding of Embedded Systems and the software that runs on them:

Hardware Fundamentals

Electric Circuits

Number Systems

Boolean Algebra

Computing Devices

Programmable Logic

Peripherals

Communication Protocols

Typical Bootup Sequence

Bare-metal Embedded Software

Embedded Operating Systems

Software Frameworks

Application Frameworks