Embedded Software (IT-)





Offered by

ICT Engineering




IT-SDJ2 (especially thread programming) and IT-CAO1 or similar courses.

Main purpose

​The purpose is to qualify the student to apply basic concepts in real-time programming, and to implement real-time programs using the C-programming language on embedded micro-controllers and using interfaces (APIs) to a number of sensors and actuators.


​The student should be able to account for:
- Analysis of an embedded problem and documentation of the analyse- and design- process in UML
- Basic concepts of programming with a Real-time Operating System (RTOS)
- Issues like deadlocks etc.
- Real-time C-programs for embedded Micro Controller Units
- Dynamic memory management in C
- Unit test of C-programs


​The student should be able to exemplify:
- Analyse and design of an embedded software solution
- Implement functioning real-time programs in C using FreeRTOS
- Implement programs in C using different C API’s and libraries for hardware drivers etc.


​The student should be able to:
- Design and construct real-time systems using FreeRTOS and C-programming
- Construct real-time programs
- Apply FreeRTOS timers in real-time programs in C
- Apply synchronization and avoid dead-locks
- Apply memory management, resource sharing and control


Teaching methods and study activities

​4 lessons per week in 12 weeks.

Activities change between theory, tasks, practical exercises.

Required workload for students is estimated to 137.5 hours where approximately 2/3 is self-study including exercises and examination preparation.


​The C Programming Language (2nd Edition) by Brian W. Kernighan, Dennis M. Ritchie



​Exam prerequisites:
• Mandatory course activities completed
• The student must have an attendance of at least 75% in order to qualify for the exam. Students who do not have at least 75% attendance will automatically fail the ordinary exam.

Exam type:
Individual written exam, 3 hours.
Internal assessment.

Tools allowed:
Course literature according to the course description
Personal notes on paper
Access to local pdf-files
Laptop (no access to general internet)

Same as ordinary exam

Grading criteria

​​Grading based on the Danish 7-point scale.

Additional information


Lars Bech Sørensen (LBS)

Valid from

2/1/2023 12:00:00 AM

Course type


C Programming, Analyse and design Real-time systems using UML, FreeRTOS, Tasks, Queues, Timers, Memory management, Resource sharing, Semaphores and mutexes, Synchronization, Unit test in C, Simple integration test