Modulbeschreibung

Embedded Software Development under Linux

Kurzzeichen:
M_TuIT_EVA_1036
ECTS-Credits:
3
Leitidee:

Networked embedded systems are used in most technical disciplines such as MedTech, IoT, mechatronics, electronics, data science, energy/environmental technology or photonics. They capture physical information, process it, pass it on and, if necessary, influence the environment. Basic knowledge of embedded software development processes is therefore essential for many engineers, and they need to master, at least to some extent, the creation and use of software for these purposes. Libraries exist for many devices, but one needs to know how to obtain, create, use and test software for different platforms.

The course will focus on target-oriented examples of Linux based embedded software development. That starts with general question about software development, version control systems and basic operating systems concepts. Popular software languages such as C/C++ and Python will be touched together with translating them into various target platforms. Examples with useful libraries from different fields will be demonstrated and tried out. The most common tool used in system programming such as Make and CMake among others will be covered as well. 

Modulverantwortung:
Graf Urs
Standort (angeboten):
Buchs
Zusätzliche Eingangskompetenzen:

Programming: basic knowledge of C or any other structured programming language (e.g., Java, Python, C++)
Operating System: basic understanding of operating system concepts (file system)
Linux: Though not required, it’s advantageous to have very basic knowledge about Linux, e.g. using a shell.

Modultyp:
Wahlpflicht-Modul für MSE Master of Science in Engineering BB STD_08 (BU)(Keine Semesterempfehlung)Kategorie:Fachliche Vertiefung (MSE-FachV)
Wahlpflicht-Modul für MSE Master of Science in Engineering BB STD_13 (BU)(Keine Semesterempfehlung)Kategorie:Fachliche Vertiefung (MSE-FachV)
Wahlpflicht-Modul für MSE Master of Science in Engineering BB STD_16 (BU)(Keine Semesterempfehlung)Kategorie:Fachliche Vertiefung (MSE-FachV)
Wahlpflicht-Modul für MSE Master of Science in Engineering VZ STD_08 (BU)(Keine Semesterempfehlung)Kategorie:Fachliche Vertiefung (MSE-FachV)
Wahlpflicht-Modul für MSE Master of Science in Engineering VZ STD_13 (BU)(Keine Semesterempfehlung)Kategorie:Fachliche Vertiefung (MSE-FachV)
Wahlpflicht-Modul für MSE Master of Science in Engineering VZ STD_16 (BU)(Keine Semesterempfehlung)Kategorie:Fachliche Vertiefung (MSE-FachV)
Wahlpflicht-Modul für Technik und IT MSE_20(Keine Semesterempfehlung)Kategorie:Fachliche Vertiefung (MSE-FachV)
Modulbewertung:
Note von 1 - 6

Leistungsnachweise und deren Gewichtung

Während der Unterrichtsphase:

Es findet eine mündliche Prüfung statt.

Bewertungsart:
Note von 1 - 6
Gewichtung:

Es findet eine mündliche Prüfung statt (Gewicht 100%).

Bemerkungen:

Inhalte

Angestrebte Lernergebnisse (Abschlusskompetenzen):

Networked embedded systems are used in most technical disciplines such as MedTech, IoT, mechatronics, electronics, data science, energy/environmental technology or photonics. They capture physical information, process it, pass it on and, if necessary, influence the environment. Basic knowledge of embedded software development processes is therefore essential for many engineers, and they need to master, at least to some extent, the creation and use of software for these purposes. Libraries exist for many devices, but one needs to know how to obtain, create, use and test software for different platforms.

The course will focus on target-oriented examples of Linux based embedded software development. That starts with general question about software development, version control systems and basic operating systems concepts. Popular software languages such as C/C++ and Python will be touched together with translating them into various target platforms. Examples with useful libraries from different fields will be demonstrated and tried out. The most common tool used in system programming such as Make and CMake among others will be covered as well. 

Modul- und Lerninhalt:
  • Basic knowledge of Linux, shell

  • Binutils, compiler, libraries

  • Make, CMake

  • Version control, git

  • Native development versus cross development

  • Basic programs in C/C++, Python?

  • Networking, static and dynamic IP-Adresses, WLAN, UDP

  • Bootloader, kernel, device tree, drivers

  • Exemplary sensors

  • Image processing, opencv