Module B: Programming Embedded Systems

Course description

This course relies on course »64136 Designing Embedded Systems«

1) Basic paradigm: Multitasking, real time execution, multiple access to resources, inter task communication.

2) The time slicing principle and consequences: time slicing, schedulability analysis, implementation on assembly language and C language level, multiple stack data structures, interrupts, response time analysis.

3) Synchronization and arbitrage: pipeline structures, buffering data, semaphores, program atoms.

Course is carried out on study programme

Electrical engineering 1st level

Objectives and competences

Understanding the specifics of programming embedded systems: demands of concurrent execution of several tasks in real time. Fundamental time slicing techniques of programming and solving of typical synchronization problems. Developing practical skills during project oriented laboratory work in combination with course 64136.

Learning and teaching methods

Lectures, discussion groups, laboratory project work (group and individual).

Intended learning outcomes

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

  • calculate the worst case execution time of any written C function
  • calculate the maximal stack requirements for any C program code
  • select a suitable heap management scheme for a given real time problem
  • calculate the schedulability of any given priority based scheduling problem
  • Detect a potential dead lock or life lock situation
  • Employ synchronization primitives and semaphores

Reference nosilca

1. TUMA, Tadej, BÜRMEN, Arpad. Circuit simulation with SPICE OPUS : theory and practice, (Modeling and simulation in science, engineering and technology). Boston; Basel; Berlin: Birkhäuser, cop. 2009.

2. PUHAN, Janez, BÜRMEN, Arpad, TUMA, Tadej, FAJFAR, Iztok.  Teaching assembly and C language concurrently. Int. J. Electr. Eng. Educ., Apr. 2010, vol. 47, no. 2, str. 120-131,

3. OLENŠEK, Jernej, BÜRMEN, Arpad, PUHAN, Janez, TUMA, Tadej. Automated analog electronic circuits sizing. V: QING, Anyong. Differential evolution : fundamentals and applications in electrical engineering. [Piscataway]: IEEE Press; Singapore: J. Wiley & Sons, cop. 2009, str. [353]-367.

4. BÜRMEN, Arpad, OLENŠEK, Jernej, TUMA, Tadej. Mesh adaptive direct search with second directional derivative-based Hessian update. Computational optimization and applications, ISSN 0926-6003. [Print ed.], Dec. 2015, vol. 62, no. 3, str. 693-715.

5. KORINŠEK, Gašper, DERLINK, Maja, VIRANT-DOBERLET, Meta, TUMA, Tadej. An autonomous system of detecting and attracting leafhopper males using species- and sex-specific substrate borne vibrational signals. Computers and electronics in agriculture, ISSN 0168-1699. [Print ed.], 2016, vol. 123, str. 29-39.

Study materials

1. PUHAN, Janez, TUMA, Tadej. Uvod v mikrokrmilniške sisteme : zgradba in programiranje. 2. dopolnjena izd. Ljubljana: Založba FE in FRI, cop. 2011. III, 206 str.

2. Večje število PDF datotek s področja mikrokrminliške družine Arduino Due. Ustrezne spletne povezave na posodobljen seznam datotek se sproti objavlja na spletnih straneh predmeta.

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