/OSES_Project

An RT-Thread-based H7 stress test, processing raw spatial and ambient data to maximize CPU utilization on an STM32 embedded platform.

Primary LanguageC

OSES Project1

This application was developed using the RT-Thread OS kernel, to be loaded onto an STM32 Nucleo-144 board with the aim of realizing an H7 CPU scheduler stress-test based on the XenoJetBench benchmark.

The workflow can be divided into three steps: analog sampling, FPU benchmarking and data storage. Raw sensor readings get first collected by means of an MPU-6050 accelerometer (acceleration & gyroscopic data on the three Euclidean axes) and a BMP280 barometer (ambient pressure readings). A hardware-dependent external library had to be included in order to get the latter peripheral to work properly within the target platform.

These input values are then processed by the synthetic benchmark, whose results can eventually be saved into a W25Q64FV 64 Mbit memory. Two pushbuttons are utilized to control such archiving functionality, so that the first is used to write the data deriving from the external peripherals into the flash, while the other one is used to read the latest results of the benchmark from it.

The asynchronous requests were initially implemented by means of additional aperiodic tasks, whereas a deferrable server was later added to the system in order to significantly improve the overall workload of such real-time system, whilst providing a considerably higher level of optimization and a safer operation at the same time.

Platform

Footnotes

  1. This application was developed by Nicola Di Gruttola Giardino, Fulvio Castello & Nicolò Carpentieri for the Operating systems for embedded systems MSc course @ the Polytechnic University of Turin (A.Y. 2021/2022). More detailed information geared toward an oral presentation can be found inside the Documentation folder.