Programming Embedded Systems

Data is displayed for academic year: 2023./2024.

Course Description

Embedded system concept and application areas. Embedded system architecture. Microcontroller structure and families. Processor cores, internal buses and memories. Integrated peripherals. Interrupt system. Software development tools for programming microcontrollers in C programming language. Structuring the software for embedded systems. Hardware initialization, exception handling, working with libraries. Debugging and testing embedded system. Using real-time operating systems on microcontrollers. Requirements analysis for embedded systems software development. Embedded system software and hardware architecture planning. Working with heterogeneous embedded systems.

Study Programmes

University graduate
[FER3-HR] Audio Technologies and Electroacoustics - profile
Elective Courses (1. semester) (3. semester)
[FER3-HR] Communication and Space Technologies - profile
Elective Courses (1. semester) (3. semester)
[FER3-HR] Computational Modelling in Engineering - profile
Elective Courses (1. semester) (3. semester)
[FER3-HR] Computer Engineering - profile
Elective Courses (1. semester) (3. semester)
[FER3-HR] Computer Science - profile
Elective Courses (1. semester) (3. semester)
[FER3-HR] Control Systems and Robotics - profile
Elective Courses (1. semester) (3. semester)
[FER3-HR] Data Science - profile
Elective Courses (1. semester) (3. semester)
[FER3-HR] Electrical Power Engineering - profile
Elective Courses (1. semester) (3. semester)
[FER3-HR] Electric Machines, Drives and Automation - profile
Elective Courses (1. semester) (3. semester)
Elective Courses of the Profile (1. semester) (3. semester)
[FER3-HR] Electronic and Computer Engineering - profile
Elective Courses (1. semester) (3. semester)
Elective Courses of the Profile (1. semester) (3. semester)
[FER3-HR] Electronics - profile
Elective Courses (1. semester) (3. semester)
[FER3-HR] Information and Communication Engineering - profile
Elective Courses (1. semester) (3. semester)
[FER3-HR] Network Science - profile
Elective Courses (1. semester) (3. semester)
[FER3-HR] Software Engineering and Information Systems - profile
Elective Courses (1. semester) (3. semester)

Learning Outcomes

  1. Define elements and architecture of an embedded system.
  2. Analyze requirements for implementation of an embedded system hardware and software.
  3. Design architecture of hardware and software part of solution for an embedded system.
  4. Develop software for microcontroller.
  5. Use built-in microcontroller peripherals.
  6. Use real-time operating system on microcontroller.
  7. Use heterogeneous embedded systems.

Forms of Teaching

Lectures

-

Laboratory

-

Grading Method

Continuous Assessment Exam
Type Threshold Percent of Grade Threshold Percent of Grade
Laboratory Exercises 50 % 20 % 50 % 20 %
Mid Term Exam: Written 50 % 40 % 0 %
Final Exam: Written 50 % 40 %
Exam: Written 50 % 60 %
Exam: Oral 20 %

Week by Week Schedule

  1. Concept of embedded systems, Structure of basic computer system: CPU, memory, I/O, bus
  2. Microprocessors and microcontrollers, Microcontroller families (4-bit, 8-bit, 16-bit, 32-bit), Processor core
  3. Integrated peripherals, Interrupts, polling, interrupt structures: vectored, prioritied, Direct memory access, Memory architectures, hierarchies, caches
  4. Hardware initialization, Bare machine, Library tailoring, Semihosting
  5. Interrupt handling, Programming environments, emulators, simulators
  6. RTOS specifics in embedded systems, Context switching
  7. Porting real-time operating systems to specific HW platform, Hardware abstraction layer
  8. Midterm exam
  9. Real-time operating systems programming patterns in industrial applications, RTOS tools
  10. Requirements analysis and identification of optimal HW/SW platform, Partitioning and integration of HW/SW solution
  11. Design methodologies for HW/SW co-design, Architecture generation - program translation to architecture
  12. High level programming support for heterogeneous embedded systems (DSL- Domain Specific Language support: streaming, signal processing, etc;)
  13. Programming models for HW/SW codesign, heterogeneous systems, accelerators (GPU, coprocessors, programmable logic)
  14. High-level memory management for embedded systems runtimes (garbage collection, memory allocation, flash wear leveling)
  15. Final exam

Literature

D. E. Simon (1999.), An Embedded Software Primer, Addison Wesley
Wayne Wolf (2008.), Computers as Components: Principles of Embedded Computer Systems Design, Morgan Kaufmann
Q. Li, C. Yao (2003.), Real-Time Concepts for Embedded Systems, CMP Books
M. Vučić (2007.), Upotreba mikrokontrolera u ugrađenim računalnim sustavima, FER, ZESOI

For students

General

ID 222691
  Winter semester
5 ECTS
L0 English Level
L1 e-Learning
45 Lectures
0 Seminar
0 Exercises
12 Laboratory exercises
0 Project laboratory
0 Physical education excercises

Grading System

90 Excellent
75 Very Good
60 Good
50 Sufficient