Embedded Systems

Course description

Introduction, embedded systems architectures, advanced embedded systems, application domains, and a few examples.

Operating systems (OS) concepts, real-time OS,

embedded OS.

Linux, system calls and functions overview.

Processes, multi-tasking, multi-threading. Memory management.

Scheduling. System calls for process/thread control. Examples in C/C++.

Inter-process communications (IPC), critical section, synchronization, semaphores, signals, shared memory, pipes, and messages. Thread synchronization. System calls for IPC. Examples in C/C++.

Principles of computer networks, ISO OSI and TCP/IP.  Client-server model. Sockets API, examples in C/C++.

Time management. Timers. Real-time (RT) systems. Scheduling in RT systems.

Examples in C/C++.

Multi-processor systems, parallelisms, speed-up, efficiency. Selected topics in parallel/distributed systems design.

Course is carried out on study programme

2nd Cycle Postgraduate Study Programme in Electrical Engineering

Objectives and competences

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

Learning and teaching 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.

Intended learning outcomes

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.

Reference nosilca

  1. MUHOVIČ, Jon Natanael, MANDELJC, Rok, BOVCON, Borja, KRISTAN, Matej, PERŠ, Janez. Obstacle tracking for unmanned surface vessels using 3-D point cloud. IEEE journal of oceanic engineering. [Print ed.]. 2019, vol. , str. 1-13, ilustr. ISSN 0364-9059. https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8703893, DOI: 10.1109/JOE.2019.2909507. [COBISS.SI-ID 12642388]
  2. KRISTAN, Matej, SULIĆ KENK, Vildana, KOVAČIČ, Stanislav, PERŠ, Janez. Fast image-based obstacle detection from unmanned surface vehicles. IEEE transactions on cybernetics, ISSN 2168-2267, Mar. 2016, vol. 46, no. 3, pp. 641-654.
  3. SULIĆ KENK, Vildana, MANDELJC, Rok, KOVAČIČ, Stanislav, KRISTAN, Matej, HAJDINJAK, Melita, PERŠ, Janez. Visual re-identification across large, distributed camera networks. Image and vision computing, ISSN 0262-8856, Feb. 2015, vol. 34, pp. 11-26.
  4. MUROVEC, Boštjan, PERŠ, Janez, MANDELJC, Rok, SULIĆ KENK, Vildana, KOVAČIČ, Stanislav. Towards commoditized smart-camera design. Journal of Systems Architecture, ISSN 1383-7621, Nov. 2013, no. 10, part A, pp. 847-858.
  5. SULIĆ, Vildana, PERŠ, Janez, KRISTAN, Matej, KOVAČIČ, Stanislav. Efficient feature distribution for object matching in visual-sensor networks. IEEE transactions on circuits and systems for video technology, ISSN 1051-8215, Jul. 2011, vol. 21, no. 7, pp. 903-916.

Study materials

  1. M. Kerrisk, The Linux Programming Interface, No Starch Press, Inc., 2010.
  2. R. Stevens, S. Rago, Advanced programming in the UNIX environment, 3rd Ed., Addison Wesley, 2013.
  3. Vgradni sistemi, Študijsko gradivo izvajalcev predmeta (Embedded systems: course material written by the lecturers),  navodila za vaje (lab assignment instructions).

Bodi na tekočem

Univerza v Ljubljani, Fakulteta za elektrotehniko, Tržaška cesta 25, 1000 Ljubljana

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