Example of an embedded system
1960s - The Apollo Guidance Computer (AGC)
Functions
- Navigation from the Earth to lunar orbit
- Landing on the Moon
- Return to lunar orbit
- Rendezvous
- User interface
- Redundancy and safety
- Etc.
Characteristics
- Weight: aroung 32 kg (without the user interface)
- Power supply: 28 V CC - 70 W
- Permanent memory: 36 Kwords (16 bits) ⇔ 72 KB
- Erasable memory: 2 Kwords (16 bit) ⇔ 4 KB
- Clock: 1 MHz (83 kHz instruction cycle time)
Software
- One of the first real-time, interrupt-driven operating systems
- Task priorization
- Fault tolerance
- Written in assembly language
Compared to current configurations:
- Very little memory (total of 76 KB)
- Very little processing power (83,000 instructions per second)
Yet it allowed to bring human beings to the Moon.
It's not because you don't have a lot of memory and processing power
that you can't develop great applications!
The board we will use in the practice sessions
- Memory: total of 1792 KB (23 times the AGC)
- Processing power: 117 millions of instructions per second (1410 times the AGC)
So, please, never complain that you don't have enough memory and processing power for
running an embedded application, unless you're trying to perform something more complicated than
landing on the Moon!
What is an embedded system?
An embedded system is a specialized computer system able to perform dedicated functions within a
larger system.
Key characteristics
- Purpose-built - as opposed to general purpose computers
- Integration within a larger system - handling sensors and actuators
- Real-time operation - strict time constraints
- Resource constraints - memory, processing power, energy, size, etc.
- Reliability - continuous operation without human intervention
Machine learning and embedded systems
- In the embedded world, some classes of problems can't be easily solved with traditional methods: voice recognition, object detection, facial recognition, etc.
- Nowadays, some embedded systems are powerful enough to run (and even train) some ML models
- But running ML models in embedded systems is still somewhat challenging, and requires to understand what embedded systems are and how they work
Needs of embedded ML applications
To perform their job, ML applications need:
Technical domains
Closer look - Software Development
HAL: Hardware Abstraction Layer - RTOS: Real-Time Operating System
Closer look - Communication
Closer look - Electronics