Chapter 4: Embedded Systems Flashcards
What is the motivation for embedded systems?
- pervasive computing means connected computational devices become interwoven with things in our everyday life
- computation unit should be unnoticed by users
- > They need to be small and embedded and may not have classical input / output possibilities
- they got cheaper and increased in power
The definition of embedded systems
- Is a computer system with dedicated function that is physically embedded within a larger physical object
- Everything that includes a microprocessor (but not a general purpose computer)
- It is optimized for specific tasks and scenarios (huge variety)
Give some examples for embedded systems
Peripherals (small and simple): Key Finder
Transportation (large and complex): Car computer
Robotics (reliable): Moon car
Medical Devices(safety critical): pace maker
- Routers
- GPS receivers
- MP3 Players
- Fridge
What are the requirements on an embedded system?
- Depends on the physical host object in which it is embedded
- Price, weight, form factor (state of the art i9 too expensive?). We need hardware customly build for the application domain.
- Mobility (wireless communication / charging possible?)
- Accessibility (deeply embedded -> hard to repair)
- Human-Computer-Interaction (may not have a screen or only small one)
- Expected Lifetime (possible to run on battery for years)
How is an embedded system operated in the real world context?
- Host object & embedded system are located in a specific physical context
- System is influenced by the context and may influence it in return
Reallife context sets very hard requirements on the system:
- Real-time
- Safety
- Security
- Flexibility
What sources of restricitons exist for embedded systems
- Restrictions by the host object
- Restrictions by the physical world (very hard requirements)
What are the challenges that come along with the characteristic of “dedicated function” in an embedded system ?
- It is tailored and optimized for an exact task
- This means that the system is much more restricted with respect to compute power, memory, energy
- Need to develop / adapt SW & Hardware for each new device
What kind of design approach exist for embedded system?
- Classical Approach
- Modern Approach
Explain the classical approach to design an embedded system.
- Tailored devices
- Specialised engineers only doing this
- Design new HW; SW for each application
Explain the modern approach to design an embedded system.
- Generic devices adapted as needed
- Wider developer base
- Focus on SW design, only basic HW design
What is the difference between developing desktop apps and embedded systems ?
- Many target platforms (HW/OS)
- Other programming languages
- Other programming abstractions and APIs
- Other development tools (cross-compilers)
- Different development process
Name three Embedded OS
- Linux
- eCos
- LynxOS
Name the three most relevant languages for embedded system
1) Python
2) C++
3) C
What are the challenges for programming abstractions for embedded system development
- We may have restricted or no OS support
- Device drivers may be available as C library that need to be used in the application code directly
If we are lucky: Hardware Abstraction Layer available
Often: lower level programming with access to HW
What is the difference between a Desktop app and embedded system in terms of architecture
Desktop Components:
- Application Software
- Middle Layer
- OS
- Device Drivers
- Hardware
Embedded Components:
- Application Software
- Hardware
Desktop has a higher programming abstraction for application software!
What are the challenges of cross-platform development
- Software is developed on one platform (host system) but runs on another (target system)
What is the host system in regards to cross-platform development
- The system on which the embedded software is developed
What is the target system in regard to cross-platform development
- The embedded system that is under development
What is the cross compiler in regard to cross-platform development
- A compiler that runs on one type of processor architecture but produces code for a different type of processor architecture
What different hardware does an embedded system have
- Processing Unit (low computational power, highly specialized)
- Memory
- Internal on-chip memory (very fast, cache)
- Internal off-chip memory (not in circuit, slower, main memory)
- External memory (flash drives, removable)
- Communication
- Different I/O standards
- Low Power Networks