Skip to main content

Windows/Linux Programming (3cr)

Course unit code: TT00BB79

General information


Credits
3 cr

Objective

As Linux and open source software become more common, the use of programming methods and technologies familiar from the world of UNIX / Linux is becoming increasingly common for ARM-based processor architecture-based software.
In an independently executed software project the students will learn to use development tools that are commonly used in today's software projects. The reference device for the project is Raspberry Pi.
Upon completing the Linux System Programming course the students will know Linux architecture, the Linux kernel structure, and how to implement powerful device-based applications in the C language. After completing the course, the student s will also have mastered the design and implementation of applications in the multitasking system. The course covers device driver and Linux kernel programming and the special features of making a Kernel module add-on to the Linux Kernel.

Content

The goal is to produce a software that works with Raspberry Pi, which monitors its environment with sensors, processes the measurement data it receives, and then controls the connected device. The assignment combines sensor technology, a control logic with a higher level programming language, making a threaded program, interaction between processes, and implementing the device driver required. The device driver is connected to the kernel module. The software project provides the ability to use the programming tools (Qt Creator or Eclipse IDE and Remote debugging) required for this type of project.
The LKM (Loadable kernel module) part of the course introduces the architecture at the core of the Linux kernel and how process and thread sameness situations will be addressed in programming. It is further learned to handle delays and timers at the core, to share memory, to handle different types of interruptions, and to handle core data types at the core.
The course includes a wealth of guided exercises and a work book with scoring tasks. The course also includes an independent Raspberry Pi project.

Assessment criteria, excellent (5)

80-100 points for assignments, Independent project implementation according to requirements.

Assessment criteria, good (3)

60-79 points for assignments, Independent project implementation to a large extent according to requirements.

Assessment criteria, satisfactory (1)

40-59 points for assignments, implementing an independent project by repeating a sample project.

Further information

Teaching involves contact lessons and online learning (Moodle).

Go back to top of page