Feel free to contact me for related topics.
Real-time programming is necessary in many fields of applications nowadays. While designing real-time programs, it is necessary to keep the overhead of the system as low as possible. Still, it is important to keep the source code modular and easily maintainable. At this point, operating system are very popular because they ease this task by providing basic communication and modulation infrastructure. Still, using an operating system always implies an overhead on top of your application – in terms of size and performance. For many applications this effect does not matter as the hardware and therefore the available memory and CPU performance highly increased in the past decades. But there are also high-performance applications where delays in the order of microseconds can cause failure of the system.
Nowadays, there are many light-weight real-time operating systems (RTOS) available. They mostly inherit similar features, but they slightly differ in terms of design and implementation. For high-performance applications, those differences can influence the choice of the operating system.
The goal of this work is to compare some of the most popular light-weight operating systems (FreeRTOS, chibiOS/RT, μCOS) regarding to their features, performance and size. The hardware platform is an STM Discovery kit for STM32F407/417 lines - with STM32F407VG MCU.
The following tasks have to be done:
- Acquire some knowledge on real-time operating systems in general
- Decide on which OS features are relevant for performance measurements
- Integrate chosen OSes into development framework is necessary
- Implement benchmarks and measure the performance of different OS features for the chosen OSes
- Knowledge of C
- Helpful: Background on operating systems
- Helpful: Background on real-time programming
- Diligent, independent and well-organized work performance