Menu

Embedded Systems

Embedded System Programs

The program an embedded system runs is fixed: it is written to do one dedicated job and is not meant to be swapped for something else. That program is typically held in ROM (read-only memory), a type of memory that keeps its contents when the power is switched off and is not normally written to while the device is running. So every time the device is switched on, the same program is there, ready to check its inputs and drive its outputs.

Why you cannot change it

An embedded system has no app store or installer, and its memory is far too small to hold extra software. The user cannot normally edit the program or add new programs, because the instructions sit in ROM rather than in storage the user can write to. The manufacturer may sometimes release a new version of the program, which is installed during a service, but that is the maker's job rather than the owner's. Adding a new card code to a door lock is only changing data, not changing the program itself.

A worked example

Think of the electronic lock on a hotel bedroom door. Its ROM holds a fixed program: read the key card, compare the code with the list of valid codes, and if it matches, run the motor that pulls the latch back for a few seconds. Hotel staff can add or remove card codes, but they cannot make the lock do anything new, such as show messages or play a greeting, because the program cannot be rewritten. If the maker finds a fault, it releases an update for the lock's program.

What this means for suitability

Because the program is fixed and memory and processing power are limited, the system can only do the task it was built for. A small youth theatre that needs one machine to sell tickets, control stage lights and play interval music, and wants to install new software when the season changes, needs a machine that runs many different programs. An embedded system is not suitable for that job, since its fixed program and limited memory cover only one task and the theatre staff cannot install the extra programs themselves.

Practise this