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.