Embedded System Software

Objectives and outcomes

Acquiring basic knowledge and mastering practical skills in software development for embedded
computer systems. Upon completion of the course, students will be able to design, implement, test and
analyse the performance of dedicated system software.

Lectures

Stages in software development of embedded systems. Embedded system software architecture. An
overview of development environments and tools in the field of dedicated systems. Basic differences
between embedded system software and application software. Software architecture for embedded
systems. An overview of different types of hardware embedded systems and their limitations from the
aspect of software development. Performance analysis of embedded systems. Embedded software testing
methods and principles. Performance optimisation according to hardware limitations. Memory system
design and how it affects software design and system characteristics. Hardware / software units for
single bus systems. Real-time software support. Device driver development. Sources of software errors.
Operation of the control unit. Memory system power consumption. Power management at the system
level. Basics of competitive processing implementation for embedded systems.

Practical classes

Analysis of hardware characteristics of the selected embedded system. Software architecture design
exercise with hardware limitations on the selected illustrative example. Implementation of embedded
system software components. Connecting components. Performance testing of implemented software.
Discussion about possible software optimisation. Application of the principle of competitive processing.