Notice: We have migrated to GitLab launching 2024-05-01 see here:

Version 454 (modified by Gedare Bloom, on 03/07/17 at 16:16:54) (diff)

strike-thru improve coverage analysis

Open Projects

Welcome! Whether you're here because of Summer of Code (SOC) or just want to scratch an itch to hack, we invite you to peruse our projects and ask about them on the RTEMS mailing list or IRC. If you plan to submit a proposal to do something for the RTEMS Project as part of a SOC, see Getting Started for SoC Students. RTEMS projects span kernel hacking, adding support for a new board (BSP), improving the development environment, developing tests, and more.

If you want to get your feet wet with RTEMS then check out our small projects page where you can find projects that require little coding skill and are appropriate for those new to RTEMS or open source software projects. If you are interested in one of these projects but are not able to code and test it yourself, consider sponsoring one of the core RTEMS developers to do it for you. Volunteering or sponsoring is how things get done -- users keep RTEMS development alive!

Most of these projects will take between a few weeks and a few months of effort by a person who is familiar with the general use of GNU/Linux and GNU tools. Many RTEMS projects are done by student or volunteer coders, so we try to define small projects or subtasks that can be completed and committed individually. Most of the projects are feasible as a Summer of Code project. Since some projects have multiple steps, students should work with prospective mentors to define the scope of work in their proposal. Similarly, some projects might be a starting point for a class project or graduate thesis.


The order of projects in the ticket list does not reflect their importance, difficulty, or feasibility. Our project list is not exclusive: if you have an idea, solicit feedback from the project's mailing list or IRC channel; many developers sit in IRC and check it (and their email) infrequently throughout the day, so be patient! There may or may not be enough work on a project to constitute an SoC project, and some of these are past SOC projects. If you are interested in one of these, please ask on the mailing list or IRC.

Adding Projects as Tickets

Open projects are managed as Trac Tickets. To create a new project:

  • Create a new ticket by clicking on New Ticket.
  • The Summary field of the ticket is the title of the open project.
  • The Description field of the ticket is the project detail. Please use the WikiFormatting to enhance the readability of the project's details. If you are not sure please review existing open projects as an example.
  • Set the Type field of the ticket as "project". This is done if you click on the New Ticket link above.
  • Set the Milestone field to be "Indefinite". This is done if you click on the New Ticket link above.
  • If this is a SoC Project one of the mentors of the project should be mentioned in the Owner field and you should CC the rest of the mentors. If no mentors are mentioned, keep the fields blank.
  • The Keywords field should be set to "SoC" denoting any projects that can participate in the Summer of Code. The keyword is case sensitive.
  • We might want to use some other Keywords e.g. to define the project type (e.g. one of: testing, ecosystem, kernel, statistics, BSP, API, libbsd, languages, libraries). Please ask on the mailing before adding new keywords.
  • Select an appropriate component for the Component field.

If you are unsure about anything, please ask on the RTEMS Users mailing list.

Project List

Open projects are held in Trac as Trac tickets. The list can be viewed using the SoC Project Report.

If one of the projects sounds interesting, but lacks detail, ask on the RTEMS Users mailing list for details and we can all help scope the project.

The list in no specific order is:

Board Support Package (BSP) Projects

Ticket Summary Owner
#2891 Beagleboard BSP projects Ben Gras
#2898 x86_64 BSP Chris Johns
#2899 Improve the Raspberry Pi BSP
#2900 Improve PC386 BSP Joel Sherrill
#2901 Emulate i386 (x86) BIOS for VESA Support Pavel Pisa
#2904 Memory Protection Gedare Bloom
#3784 Beagle BSP: Add a flattened device tree based initialization Christian Mauderer
#3854 MIPS Malta BSP Qemu Support Joel Sherrill
#4161 mpc8544ds Qemu BSP (likely variant of mvme3100)
#4162 SiFive RISC-V HiFive Unleashed BSP (Qemu) Needs Funding
#4272 BSP Executable Conversion Chris Johns
#4626 Add BSP for Polarfire based Beagle Kinsey Moore

Testing Projects

Ticket Summary Owner
#2927 RTEMS Testing Tool Project Chris Johns
#3429 Add Filesystem Benchmarking tools to RTEMS udit agarwal
#3710 Improve Coverity Scan Integration Gedare Bloom
#4593 Add support for Simulator Gedare Bloom

Development Ecosystem Projects

Ticket Summary Owner
#2927 RTEMS Testing Tool Project Chris Johns
#3302 Build System conversion of BSP Config (.cfg) files to pkg-config (.pc) files Chris Johns
#3333 Automate Conversion of Newlib Markup to Sphinx Joel Sherrill
#3690 Add support for Eclipse Target Communications Framework (TCF) Joel Sherrill
#3710 Improve Coverity Scan Integration Gedare Bloom
#3855 BSP Buildset for EPICS Gedare Bloom
#4182 Port Rust to RTEMS
#4547 dtc build failure on msys2 - all rtems6 target tools fail to build on Windows 10 kgardas
#4597 Cobra Static Analyzer and RTEMS Gedare Bloom
#4620 Codeql Static Analyzer and RTEMS Gedare Bloom
#4622 Add Python initializer for gdb RTEMS specific support Chris Johns
#4623 Add RSB for LLVM targeting RTEMS Gedare Bloom
#4624 Integrate Software License Bill of Materials (BOM) using SPDX Tooling Gedare Bloom
#4630 Use Address Sanitizer (ASAN) with RTEMS
#4633 Support gnocchi in RTEMS Ecosystem
#4939 Several arm BSPs cannot build libdebugger with -O0 Kinsey Moore
#4992 Add RTEMS Framework to PlatformIO Gedare Bloom

Wiki Listed Open Projects

The Wiki listed open projects are in the process of being moved to Trac Tickets. The tickets are the newer and more relevant version of any project still listed on this page. When in doubt, consider the description in the tickets as valid.

The wiki page will be cleaned up and Wiki Projects will be removed once all open projects have been moved to Trac Tickets.

For the Wiki porjects those in Bold text are higher priority simply meaning that users or developers have expressed a lot of interest in such projects. Projects in Italic text are space-oriented and therefore suitable for SOCIS.

Converting Projects To Tickets

We have started converting each of the projects listed here to tickets. Any help in the process is appreciated.

Projects that have the 'strike-through' font have been moved to Trac Tickets.


Testing a large body of software like RTEMS is in a continual state of improvement. There is always a need for more test cases and easier ways to run them all and decode the results. In addition, we want to be able to run all tests on as many hardware and simulator configurations as possible. Testing doesn't sound exciting to most people but when you combine the breadth of what we need to test with our desire for 100% instruction and branch path coverage, you get some very interesting and challenging work.

Some of the identified activities which would augment our testing capabilities are listed here:

Development Ecosystem

RTEMS applications are cross-compiled on a development host to produce executables that are transferred to and executed on target systems. The projects in this section focus on the host side of that equation. This means they will run on a developer's computer and possibly communicate with embedded hardware.

The following areas have been identified for projects related to improving RTEMS development:

RTEMS Run-Time Oriented

The projects in this category are more focused on the development of software that runs on RTEMS on target hardware.

Executive (SuperCore, SuperCoreCPU, libcpu): a.k.a. kernel

Runtime Statistics

Board Support Package (BSP)

API Layers (POSIX, Classic, SAPI)



Libraries and Applications

Retired Projects

The following projects are complete or pending.

Obsolete Projects

Some projects have been proposed that are viewed as being of minor use. This list is meant to provide a way to avoid wasted effort on projects that are not widely desired. However, projects on this list might still be useful to someone, given a motivated individual to work on them.