Operating Systems for Embedded Computers
- explain features required from embedded computer systems
- identify embedded system implementation problems
- describe operating principles for operating system kernel components
- modify operating system kernel components
- use tool chain to create software for embedded computers
- employ advanced features from C programming language
- select suitable algorithms when creating software for embedded computers
Forms of Teaching
Lectures are organized through two cycles: first last seven weeks and second six weeks. After first cycle is scheduled mid term exam and after second cycle comes final exam. Each week there are two hour lecture. Within some lectures students will be tested with short tests.Independent assignments
Homework includes solving of the given problems (published in the first week): design and implementation accompanied by a short documentation. Result should be then uploaded and later presented for grading.
|Type||Threshold||Percent of Grade||Threshold||Percent of Grade|
|Homeworks||50 %||30 %||50 %||0 %|
|Quizzes||0 %||10 %||0 %||0 %|
|Mid Term Exam: Written||0 %||30 %||0 %|
|Final Exam: Written||50 %||15 %|
|Final Exam: Oral||15 %|
|Exam: Written||50 %||50 %|
|Exam: Oral||50 %|
Week by Week Schedule
- Embedded system design techniques, Programming for embedded systems, OS design for embedded system
- Development environment for building operating systems for embedded computers. Building a system for bare metal. Tools, procedures, settings. Booting the system.
- Compiling source code from multitude of files. Layering in the source code. Makefile. Linker script, preparing the code and data to be loaded and used from specific memory locations. Sections in output file.
- Input-output devices. Interrupts.
- Dynamic memory management.
- Time subsystem. Counters, alarms, clocks.
- Preparing device drivers using unified interface. Keyboard, serial interface.
- Midterm exam
- Command shell. Advanced usage of Makefile.
- Multithreading: thread context, context switching, scheduling.
- Synchronizations and communication mechanisms: semaphores, monitors, message queues. Signals.
- Protection with a mechanism called process. Calling kernel functions through interrupts. Separate source code for kernel and programs. Running programs in user mode.
- Logical and physical addresses. Preparing kernel code for physical address space, programs for logical. Process management.
- Overview of free and commercial operating systems for embedded computers.
- Final exam