Evaluation and Adaptation of an LLVM-Based Whole-System-Compiler for Optimizing Embedded RISC-V/ARM Systems
- Typ der Arbeit: Bachelorarbeit
- Status der Arbeit: laufend
- Projekte: AHA
- Betreuer: Tobias Landsberg, Gerion Entrup, Daniel Lohmann
- Bearbeiter: Domenik Kuhn
ARA is a whole-system compiler to optimize a system's nonfunctional properties with global knowledge about the interaction between application and operating system. It consists of two parts: First, it statically analyzes a (real-time) system's source code to retrieve global knowledge based on system calls. Equipped with this knowledge, it then synthesizes an optimized system image with improved nonfunctional properties like reduced memory usage. On FreeRTOS, ARA is able to detect dynamically created instances, and preallocate and initialize them statically directly in the image. In the past, we were able to reduce the boot time significantly.
Pine64 is a company which produces mostly open hardware for open software. Two of their devices are a RISC-V soldering iron and an ARM-based smartwatch, both with FreeRTOS based firmwares (IronOS and InfiniTime). Your task will be to analyze the structure of these two firmwares, integrate them with ARA and measure the performance improvements on the real hardware. Based on these results, you should point out better optimizations for ARA and work out its limitations. Further, you should highlight potential design flaws in the analyzed software revealed by ARA.
Topics covered by this thesis:
ARM, RISC-V, FreeRTOS, C, C++, Python
ARA: Automatic Instance-Level Analysis in Real-Time Systems
Proceedings of the 15th Annual Workshop on Operating Systems Platforms for Embedded Real-Time Applications (OSPERT '19)2019.
Best Paper Award
Levels of Specialization in Real-Time Operating Systems
Proceedings of the 14th Annual Workshop on Operating Systems Platforms for Embedded Real-Time Applications (OSPERT '18)2018Best Paper Award.