Embedded System Design

Objectives and outcomes

The aim of the course is to acquire basic knowledge in the field of designing and using embedded computer systems. Students can understand and design parts and wholes of embedded computer systems.


Microcontroller and microprocessor architecture. Types of microcontrollers and internal organisation. Software tools for microcontroller programming. Programming in assembler and higher programming languages. Use of ready-made microcontroller modules and their integration into more complex systems. Using development environments to simulate and debug microcontroller systems. Connecting microcontroller modules with complex computer systems and peripherals.

Practical classes

Examples of designing and connecting parts and wholes of embedded computer systems. Working with open-source tools. ARM Cortex M microcontroller. Architecture and instruction set. Built-in peripherals. Digital input and output lines. A/D and D/A conversion. SIMD instructions and signal processing. Development system Microelectronics EasyMx PRO v7 for STM32. 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 protocols.