Multithreaded support Embedded Application on RISC-V
External reference persons Michele Portolan
Thesis type IMPLEMENTATION, RESEARCH
Description Goals: Allow standalone execution of multithreaded application on an embedded RISC-V processor
Multithreaded programming is nowadays commonplace, especially since the advent of BOOST and C++11 provided efficient and optimized libraries for thread creation and handling. In particular, the std::thread library provides several advantages over legacy POSIX implementation. To obtain these results, they both rely on low-level OS libraries such as glibc to implement multithreading, and focus on providing a standardized API.
When moving from desktop to embedded applications, a fully-fledged OS is not always available. The so-called “baremetal” flow uses platform-optimized implementation of low-level libraries to obtain statically-linked independent executable. The most famous of these implementation is newlib, which does not provide multithreading. Other implementation exists, such as musl, but they have not been ported to RISC-V, the up-and-coming Open Source processor which is set to fight on equal terms with giants such as ARM.
The goal of this internship is to port musl (or equivalent) on RISC-V, and to provide an API for the std::thread library.
Learned Outcomes: Cross-compilation, Embedded Multithreading, Standard Libraries, RISC-V Instruction Set Architecture
Required skills C/C++ programming, Computer Architecture, OS basics, Assembler
Notes Possibility to develop an FPGA-based demonstrator
Deadline 03/10/2020 PROPONI LA TUA CANDIDATURA