Embedded Systems

Subject description

The course introduces the architecture of embedded systems, advanced functions and their use. Focuses on operating systems, real-time operating systems, and embedded operating systems, and covers Linux in detail, including system calls and functions. 

Emphasis is on process management, multitasking, multithreading, and memory management, with practical examples in C/C++. Interprocess communication, synchronization, semaphores, and shared memory are studied, with examples in C/C++. 

The course also covers the fundamentals of communication networks, including the client-server model and socket programming, time and real-time management, and multiprocessor systems and parallelism, with the goal of providing practical knowledge for the development and implementation of embedded systems and their software.

The subject is taught in programs

Objectives and competences

To understand fundamental concepts and to be able to apply modern solutions and technologies to embedded systems for automation/robotics.

Teaching and learning methods

The lectures provide a theoretical background on particular subjects together with practical examples on Linux OS.

Practical work is being performed as the part of laboratory exercises, and is accomplished in the form of multiple programming assignments, acquainting students with individual elements of the modern operating systems, in this particular example, Linux. Students work in groups, consisting of two or three students, and the results are in the form of C/C++ source code for the selected embedded platform. After completing each part, students present their results to the assistant.

Expected study results

After successful completion of the course, the students should be able to:

  • Define basic embedded system concepts and solutions for real-time embedded systems in automation and robotics.
  • Find appropriate solutions for inter-process communication in embedded systems.
  • Use appropriate operating system tools for process control in embedded systems.
  • Develop the software for operating system based embedded systems.
  • Implement simple operating system component that runs in kernel space (simple kernel module in Linux OS).
  • Choose and recommend appropriate embedded solutions for real life problems in automation and robotics..

Basic sources and literature

  1. Kerrisk, Michael. The Linux Programming Interface: A Linux and UNIX System Programming Handbook. No Starch Press, cop. 2010, San Francisco. ISBN 978-1-59327-220-3 (vez.), 1-59327-220-0 (vez.) COBISS.SI-ID: 5193569. Na voljo v knjižnici UL FE.  

  2. Stevens, W. Richard, in Stephen A. Rago. Advanced Programming in the UNIX Environment. 3rd ed. Addison Wesley, cop. 2013, Upper Saddle River [etc.]. ISBN 978-0-321-63773-4, 0-321-63773-9. COBISS.SI-ID: 2053701. Na voljo v knjižnici UL FE. 

Stay up to date

University of Ljubljana, Faculty of Electrical Engineering Tržaška cesta 25, 1000 Ljubljana

E:  dekanat@fe.uni-lj.si T:  01 4768 411