Embedded Software Design


Recommended prerequisite for participation in the module

The module builds on knowledge gained in Imperative Programming

Content, progress and pedagogy of the module


  • Machine language
  • Assembler
  • Number theory/Number representation
  • State machines
  • System SW: compiler, linker, loader
  • Device drivers
  • Kernel / RTOS
  • Analysis and design of SW for embedded systems
  • Scheduling:
    • round robin, fixed priorities
    • schedulability criteria
  • Foundations of algorithms
    • Iteration
    • Induction
    • Recursion
  • Search and sort algorithms
    • Arrays
    • Linked lists
    • Trees
    • Simple sorting algorithms

Learning objectives


  • Operating systems, incl.
    • Inter Process Communication (IPC)
    • Access to peripherals
    • Task dispatching


  • Application of various scheduling principles
  • Application of Inter Process Communication


  • Design of multi-tasking programs on given operating systems.
  • Design of operating systems, incl.
    • Memory consumption
    • Context switch overhead
    • Pipelining
    • Interrupt handling
  • Design and implementation of software systems on application level

Type of instruction

Lectures with assignment and self-study



Name of examEmbedded Software Design
Type of exam
Written or oral exam
AssessmentPassed/Not Passed
Type of gradingInternal examination
Criteria of assessmentThe criteria of assessment are stated in the Examination Policies and Procedures

Facts about the module

Danish titleDesign af indlejret software
Module codeESNEITB4K2
Module typeCourse
Duration1 semester
Language of instructionEnglish
Empty-place SchemeYes
Location of the lectureCampus Aalborg
Responsible for the module


Study BoardStudy Board of Electronics and IT
DepartmentDepartment of Electronic Systems
FacultyThe Technical Faculty of IT and Design