Course details

Microprocessors and Embedded Systems

IMP Acad. year 2022/2023 Winter semester 6 credits

Current academic year

Embedded systems, introduction, applications. Microcontroller architecture. Memory subsystem. Programmersmodel, programming of the ARM core, Stack, Interrupt subsystem and its programming. On chip peripheraldevices and their programming: system clock generator, timers, communication interface UART, IIC and SPI,analogue and digital input and output. Programming techniques for embedded systems inC language.


Course coordinator

Language of instruction

Czech, English


Credit+Examination (written)

Time span

  • 39 hrs lectures
  • 6 hrs exercises
  • 8 hrs laboratories
  • 12 hrs projects

Assessment points

  • 51 pts final exam (written part)
  • 19 pts mid-term test (written part)
  • 16 pts labs
  • 14 pts projects




Subject specific learning outcomes and competences

   - Students are familiar with general structure of microcontrollers and with the techniques of embedded      systems design.    - Students are capable to design and debug the routines and initialization routine for each peripheral      device. They are skilled in utilizing of basic debugging techniques for the application programs      written in C language.      Understanding of design specificity of embedded systems using microcontrollers and techniques of      application debugging.

Learning objectives

To give the students the knowledge of architecture of different microcontrollers. To acquaint with performance of individual subsystems namely CPU- programming model, flash memory, timer, interrupt subsystem, communication interface, AD converter. Make students familiar with basic rules and programming techniques in a  high-level language C as well as with embedded system design.

Why is the course taught

Embedded computer systems make up a large and vividly growing market, which is supposed to be expanding even further with the progressive deployment of the Internet of Things (IoT) concept. One aspect is comprising application of computers and their programming, just as those are generally known. But in the same time, it is also possible to distinguish certain specifics and particularities related to the application and programming of embedded computer systems which, from the perspective of traditional computers, are deemed to hold just some marginal importance or do not need to be addressed at all. Such an interpretation is essentially given by the strong binding of an embedded computer to the underlying hardware and surrounding processes in its vicinity. A typical embodiment of a computer for embedded applications is so called microcontroller, which is a device conceived as an entire computer available on a single chip where it's coupled with various interfaces and range of supporting hardware modules useful for simplification, speed-up or mitigation of the burdens otherwise connected with applications programming.

The overall volume of microcontrollers fabricated annually on a global scale falls into the range of tens of billions. It is important to highlight the fact that thanks to the flexibility of software solution the microcontrollers not only open a way how to carry out various innovations and achieve price reduction of wide range of existing systems and applications (from toys to home appliances, vehicles, manufacturing processes and industrial machines), but their utilization constantly unlock also new possibilities, products and entirely new market segments (e.g. previously mentioned IoT concept), which would be otherwise even hard to imagine without the existence of this type of computers. Within the framework of the IMP course students have the chance to make themselves acquainted with various principles behind the programming and deployment of contemporary microcontrollers. They will also become familiar with the typical modules available in those chips, their usage under various application scenarios. Finally, students should get an understanding of fundamental problems connected with embedded systems based on microcontrollers and learn about the approach to their solution.

Recommended prerequisites

Prerequisite knowledge and skills

To be familiar with the structure of CPU and other computer components, basics of electronics and machine-level programming. The basic knowledge of programming in C language.

Study literature

Syllabus of lectures

  1. Introduction to Embedded systems.
  2. ARM Core for microcontrollers.
  3. Memory subsystem and interrupts.
  4. Programming in C.
  5. Communication interfaces.
  6. Digital inputs and outputs, ports.
  7. Timers, counters.
  8. Analogue input and output.
  9. System clock and clock generation.
  10. Power supply and power consumption of embedded systems.
  11. Practical aspects of embedded systems design.
  12. ESP32.
  13. Real-time system.

Syllabus of laboratory exercises

  1. Introduction to lab kit, serial communication.
  2. Digital input/output.
  3. Timer, PWM.
  4. Analogue input.

Syllabus - others, projects and individual work of students

Compulsory individual or team twelve-hour project.

Progress assessment

   - laboratory assignments with the defense    - mid-term written examination      Exam prerequisites:      Project designing with obligatory storing  into IS and getting at least 5 points for the project.

Controlled instruction

Within this course, attendance on the lectures and group practice are not monitored. Laboratory practice and project are monitored.

Exam prerequisites

Project designing with obligatory storing  into IS and getting at least 5 points for the project.

Course inclusion in study plans

  • Programme BIT, 3rd year of study, Compulsory
  • Programme BIT (in English), 3rd year of study, Compulsory
  • Programme IT-BC-3, field BIT, 3rd year of study, Compulsory
Back to top