Embedded Systems

Objectives and outcomes

Acquisition of basic knowledge in the field of computer systems and embedded systems. Upon completion of the course, students will be able to understand and design parts and units of embedded systems.

Lectures

Comparison of embedded systems and other computer systems. Architecture of embedded systems. CPU in the context of a complete system with I / O and memory. CPU families used in microcontrollers. Memory management units. Memory hierarchies and cache. Memory system design and how it affects program design and system characteristics. Use of multiprocessors in embedded systems. The impact of multiple processors on performance, power supply and cost. Understanding basic design techniques. Hardware / software units for single bus systems. More general architectures. FPGA platform as a multiprocessor. An exchange between CPU and fixed logic in multiprocessors. Network embedded systems. Examples: cars, factory automation systems. Systems with built-in internet. Interfaces and systems with analogue and digital signals. Digital-to- analogue conversion. Analogue-to-digital conversion. Digital signal processing and real-time operation. Real-time software support. Operating systems and development environments for embedded systems. Cross compilers, simulators and emulators. Logic analysers. Software management tools. Project management tools. Sources of errors in embedded systems. Transient and permanent hardware failures. Sources of software errors. The role of verification in the design of a reliable system. Techniques in the design of tolerant systems. Low power computers. Energy sources. Operation of the control unit. Memory system power consumption. Power management at the system level.

Practical classes

Architecture and instruction set. Built-in peripherals. Digital input and output lines. A/D and D/A conversion. SIMD instructions and signal processing. Microelectronics EasyMx PRO v7 for STM32 development system. Microprocessors ARM Cortex M0, M3, M4 and M7. Built-in communication protocols (Ethernet, USB, CAN). Extension modules (Click). Software environment for development and flash programming. MikroC PRO for ARM compiler and built-in libraries. Use of FreeRTOS and RIOT operating systems. Development of a simple Internet of Things node using the BeeClick module and IEEE 802.15.4 protocol.