GSoC/GCI Archive
Google Summer of Code 2009

RTEMS Project

Web Page: http://rtems.org/wiki/index.php/Open_Projects

Mailing List: http://www.rtems.org/wiki/index.php/RTEMSMailingLists

The RTEMS Project is the umbrella term used to describe the collection of individuals, companies, universities, and research institutions that collectively maintain and enhance the RTEMS software base. The RTEMS Project is lead by a Steering Committee (http://www.rtems.org/wiki/index.php/Steering_Committee) that collectively represents the interests of the community and provides stewardship for the code base. RTEMS (Real-Time Executive for Multiprocessor Systems) is a free real-time operating system designed for deeply embedded systems. It is a free open source solution that supports multi-processor systems and has been ported to over a dozen CPU architectures and includes support for over 100 boards. RTEMS is designed to support applications with the most stringent real-time requirements while being compatible with open standards such as POSIX. RTEMS includes optional functional features such as TCP/IP and various file systems while still offering minimum executable sizes under 20 KB in useful configurations. Many RTEMS developers are active in the free software community and contribute to various projects including binutils, gcc, newlib, and gdb. The RTEMS Maintainer is also a member of the GCC Steering Committee. RTEMS development is done in a cross-compilation fashion. The RTEMS Project maintains an APT/Yum Repository with RPMs for various i386 and x86_64 GNU/Linux distributions including Fedora, RHEL, CentOS, and SUSE. In addition, MS-Windows is supported via MinGW hosted toolsets. RTEMS tools are included in various BSD ports collection. Our package maintainer contributes to the Fedora project. We have recently put together some flyers for projects that use RTEMS. Please visit http://www.rtems.org/flyers.html and see how a relatively unknown piece of open source software is such an important part of the scientific community. We are proud that in April 2009, the ESA Herschel and Planck satellites will launch and both are using RTEMS. Please note that GPL+exception was not an option for the license category. Most of RTEMS uses a GPL+linking exception. This makes it possible for closed source applications to be linked statically with RTEMS. This has not been a detriment to getting contributions as we encourage our users to recognize their business differentiator that adds value. This never includes the code we want contributed.

Projects

  • Coverage Analysis Abstract: I wish to take up Coverage Analysis of RTEMS as a project for the Google Summer of Code initiative, 2009. The aims of the project are as follows: 1. To perform automated coverage testing and analyse the object level coverage provided by the RTEMS test suite 2. Identify and report parts of code that are not being exercised under the test suites 3. Analyse each case separately and classify into categories previously identified. 4. Address each of these cases and eliminate them.
  • Dynamic Object File Loading In this project, run-time dynamically loading relocatable object files or libraries into RTEMS will be implemented. It will be implemented based on the IEEE Std 1003.1-2004 API <dlfcn.h>(http://www.opengroup.org/onlinepubs/000095399/basedefs/dlfcn.h.html) interface. The work by Till Straumann and the Cexp package will provide an important base for this project.
  • Memory Management Unit Support for RTEMS Most modern processors have Memory Management Unit Hardware built into the processor whose main functions are virtual address translation, memory protection and cache control. With RTEMS primarily focused on Embedded Real Time applications, making use of these MMU features especially Memory Protection is important to meet the needs of those applications that requires such support. RTEMS currently does not have MMU support and this project proposes to add this as part of the GSoC Programme.
  • RTEMS BSP, Automatic Testing Framework And Nano-X For Skyeye PXA255 Target In this project. I will develop RTEMS BSP for PXA255 targets which are simulated by SKYEYE simulator. Shut-down device and maximum execution time parameter will be implemented to SKYEYE simulator, which will benefit automatic testing framework of RTEMS. At the end of this project, the BSP should passes all relevant single processor tests and samples which reside in “rtems/testsuites”, network demos, Nano-X demos and class examples.
  • Run-Time Tracing in RTEMS In this project I will continue the work started by Chris Johns, Joel Sherrill and continued by Reng Zeng. There will be three main goals to achieve: getting the previous code and creating a suitable patch for CVS, consolidate how a traceable application is created and provide a flexible way to filter the logged data.
  • TinyRTEMS - porting RTEMS to AVR micro controller This project proposal is for the port of RTEMS to an AVR micro controller. The recommended device is ATmega128. If time permits the system will be scaled down even further to accommodate even smaller devices.