Embedded System Programming

NámsgreinT-738-EMBE
Önn20243
Einingar8
SkyldaNei

Ár1. ár
ÖnnHaustönn/Fall 2024
Stig námsgreinarGrunnnám, sérhæft námskeið / Framhaldsnám, grunnnámskeið
Tegund námskeiðsValnámskeið
UndanfararT-201-FOR1, Forritun fyrir verkfræðinema
T-411-MECH, Mechatronics I
SkipulagEkkert skráð skipulag.
Kennari
Torfi Þórhallsson
Lýsing
Level of course:  3. Undergraduate (First cycle), advanced / 4. Graduate (Second cycle), introductory.
Type of course:  Core in MSc Mechatronics Engineering, elective for other programs.
Prerequisites (mandatory):  Programming (T-201-FOR1 or T-111-PROG). Additional recommended prerequisites: Mechatronics I (T-411-MECH).Learning the basics of programming in resource limited systems such as that found in microcontrollers. The course teaches embedded software development using the C++ programming language. Basic programming skills are assumed. The course covers the following six main topics: memory management, object oriented programming, generic programming, embedded software design, performance validation, and code optimization. Each topic is accompanied by a software project using C++ and open software tool chains.
Reading material:  Real-Time C++: Efficient Object-Oriented and Template Microcontroller Programming by Christopher Kormanyos.  Alternatively, the following three on-line texts used together:
  • Discovering Modern C++: An Intensive Course for Scientists, Engineers, and Programmers by Peter Gottschling. Addison-Wesley Professional, 2015.
  • Software Engineering for Embedded Systems, 2nd Edition by Mark Kraeling; Robert Oshana. Newnes, 2019.
  • Hands-On Embedded Programming with C++17 by Maya Posch. Packt Publishing, 2019.
Námsmarkmið
  • Write embedded programs in C++ and execute them on microcontrollers
  • Explain the important features of the C++ programming language
    Basic control structures (if, while, collections, etc.)
    Memory management (representations, data structures, and dynamic memory allocation)
    Object oriented programming (classes, abstract data types)
    Generic programming (templates, inheritance)
    Scheduling
  • Testing and debugging embedded code
  • Explain the importance of real-time operating systems
  • How to choose data structures and algorithms
Námsmat
Practical online exam. Grades given on lab assignments are part of the final grade. Late assignments are not accepted.
Lesefni
Ekkert skráð lesefni.
Kennsluaðferðir
Taught for 12 weeks. Six two-week sprints, supported by lectures.
TungumálEnska