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.
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.
Es findet eine mündliche Prüfung statt.
Es findet eine mündliche Prüfung statt (Gewicht 100%).
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.
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
Durchführung gemäss Stundenplan