Module B: Programming Embedded Systems

Subject 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.

The subject is taught in programs

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.

Teaching and learning methods

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

Expected study results

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

Basic sources and literature

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.

Stay up to date

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

E: T:  01 4768 411