An embedded system is an electronics assembly in which a micro-processor (MPU) and/or micro-controller (MCUs) with embedded software is specifically designed to control the functions of a device, including any interfaces for example buttons, touch-screen or transducers.
This is code burnt into the non-volatile memory that runs the system, and it can only be updated by reprogramming or replacing the MCU. Examples of embedded software include:
- Code that gives the embedded system its functionality
- The interface device drivers
- A computer's BIOS
- A device's Real Time Operating System (RTOS)
Embedded software loaded onto an MCU or MPU that provides system resources to application programs. Notable operating systems for a range of consumer and commercial devices include:
- Embedded Linux - used in myriad devices such as printers, data loggers, and EFTPOS terminals.
- iOS (a subset of Mac OS), Android (a superset of Linux), Windows Mobile, Blackberry OS
Computer application software runs on top of a computer's OS (eg Windows, Linux, iOS or Android) and supports a specific application, for example word processing, playing music, or flying a remote-controlled drone.
I²C / I2C
I²C (Inter-Integrated Circuit), pronounced I-squared-C, is a multi-master, multi-slave serial chip bus invented by Philips Semiconductor (now NXP Semiconductors). It is typically used for attaching lower-speed peripheral ICs to processors and microcontrollers for short-distance, intra-board communications.
Alternatively I²C is spelled I2C (pronounced I-two-C) or IIC (pronounced I-I-C).
Also referred to as a Operational Concept Document (OCD), a Requirements Specification, developed in conjunction with the customer for whom a product is being developed, discloses, primarily to the engineering team, industrial designers, project managers and other involved persons, the concept that binds the development together. It attempts to answer the questions:
- What is the product's purpose?
- Who are the users and what do they require of the product?
- If required, how will any associated application software be structured?
- What are the risks?
- Are there other organising principles or issues to be mindful of?
This is the document, often developed by the engineering team, that defines how a product will meet the specifications laid out in the requirements specification.