For a reliable and energy efficient operation of embedded devices, the optimal interaction of hardware, software and system architecture is crucial.
Embedded devices are omnipresent, some visible, most hidden. Whether the air conditioning or driver assistance in the car, the control of the coffee machine, or the control of the lift, it is best not to notice their existence and take their function as naturally given. Today, these devices are often (wirelessly) connected to the Internet of Things and battery operated. Therefore, not only low-latency and real-time behavior, but also network security and energy efficiency play a key role.
Often, embedded devices interact with their environment through sensors and actuators. While sensors enable digital devices to sense the state of their environment, actuators allow devices to influence their surrounding. If desired, devices can be designed to interact with humans using vision, speech or tactile technologies.
For years, the ARM architecture dominates the hardware ecosystem of embedded systems. Since the ARM processors or Systems on a Chip (SoC) are manufactured under license, they are available in all sorts of variations, from the power-saving small microcontroller to the powerful multicore processor system. Driven by a broadly supported company consortium, the RISC-V architecture is expected to gain market share in the embedded device industry soon. By providing an open Instruction Set Architecture (ISA), it carries the Open Source idea from software to hardware and is designed from the ground up for application-specific extensions.
Depending on the application, the software ecosystem of embedded system is dominated by tiny real-time operating systems (RTOS) or GNU/Linux derivatives. In order to successfully use the functions provided and integrate them into its own products, experience and detailed knowledge are almost indispensable. Thus, the quality of the subcomponents (especially drivers) can vary greatly and result in a necessary improvement or porting to undesirable overhead during development or maintenance. This can only be prevented by carefully reviewing the entire software package, called Board Support Package (BSP).
If necessary, the energy efficiency of the chosen platform can be optimized to extend the battery run time or increase the computation performance of your device. E.g. through the use of SIMD instructions, Graphical Processing Units (GPU) or FPGAs.
If user interaction is required, QT is recommended for simpler, the Android Open Source Project (AOSP) for larger projects.