wiki:Event/FOSS_IN/Report

Version 50 (modified by Aanjhan, on Oct 25, 2009 at 3:03:38 AM) (diff)

/* Purpose */

RTEMS Workout at FOSS.IN

This is the standard workout proposal template provided by the FOSS.IN team.

Proposers

Aanjhan Ranganathan and Santosh G. Vattam.

Aanjhan Ranganathan is a Masters Student at Ecole Polytechnique Federale de Lausanne(EPFL), Lausanne, Switzerland. He worked on RTEMS as part of Google Summer of Code 2009. His project was MMU Support for RTEMS and he was mentored by Thomas Doerfler. He has been a part of FOSS.IN since 2005 and presented a talk at FOSS.IN last year as well.

Santosh G. Vattam worked on RTEMS Testing as part of Google Summer of Code 2009. His project was Coverage Analysis for RTEMS and he was mentored by Joel Sherrill. He has been a part of FOSS.IN since 2008.

Purpose

RTEMS (Real­Time Executive for Multiprocessor Systems) is a free real­time operating system designed for deeply embedded systems. It is a free and open source solution that supports multi processor systems and has been ported to over a dozen CPU architectures and includes support for over 100 embedded boards. RTEMS is designed to support applications with the most stringent real time requirements while being compatible with open standards such as POSIX. it includes optional functional features such as TCP/IP and various file systems while still offering minimum executable sizes under 20 KB in useful configurations. RTEMS is used in a wide variety of application domains including space (NASA and ESA), physics research, communications and industrial control as well as in general computer science research projects.

With such mission critical applications and RTEMS 4.10 release very much in vicinity, testing/stability is of highest priority. Code coverage evaluates efficiency and exposes faulty code which in turn iterates into a more stable system. One major objective of this workout proposal is related to Code Coverage Improvement, a follow up on GSoC 2009 Code Coverage Analysis project and also getting a nice UI based coverage analysis tool functioning 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. As part of MMU Support GSoC 2009 Project, a basic interface and support was implemented. A further extension would be to enable cache memory support in the MMU and clean up the code base and make i ready for integration into 4.10. A POSIX like API support for the MMU functionalities is proposed too.

The ultimate goal of Google Summer of Code 2009 projects were to get integrated into the source tree for 4.10 release with additional improvements. This in combination with several other tasks listed in the Tasks section forms the bonus objectives of this workout.

Also since there are several unlisted easy/medium starter's tasks that are currently in discussion, it would be a nice workout for folks who would like to get their hands dirty with Free Software, especially those who want to dive into the Real time / Embedded world.

Pre-requisites

Hardware/Software?

Brainware

  • Programming Language: C
  • Basic bash Shell scripting
  • Interest and high motivation to work on embedded systems (both with arch/board simulators and real boards)
  • Loads of patience (for debugging, debugging embedded systems is not trivial).

Links to overall design/architecture

# Most documentation is available in Online Docs # RTEMS University - Presentations on Introduction, Getting Started etc.

Pre-event Preparation

  • Install and configure a Virtual Machine. Virtual Machine images will be provided.
  • If VM is not preferred by the participant then one can build the RTEMS toolchain and then build RTEMS.
  • Run the custom "Hello World" program to confirm your build is fine.
  • Read basic design docs of RTEMS.

Tasks

Preliminary Objectives

  • Improving code coverage with libcsupport included. We shall be focusing on the following BSPs:
    • pc386
    • uC5282

since these BSPs work on Free simulators that have coverage enabled and the reports can be generated on the spot quickly.

  • Writing a UI in python for Coverage analysis or getting lcov to work with RTEMS codebase. Will be decided in the coming days.
  • Getting MMU support code from GSOC project cleaned up, add more features as listed on "Future work" section of the GSOC Final report
  • Some basic UI stuff - E.g.: Some improvements to Roxana's work.

Complementary Objectives

  • Clean ups and documentation.
  • Fixing easy/medium bugs chosen from the RTEMS Bugzilla.

Existing work

  • Vattam worked on Coverage Analysis as part of GSoC 2009 and he has worked mostly on the SPARC architecture for sis, erc32, smdk2410 and gumstix BSPs. 100% coverage was achieved on almost all of these BSPs. Coverage analysis was performed on the score, posix, rtems, and sapi under the cpukit directory of the RTEMS tree. At this work out we intend to include the libcsupport code and also work on other BSPs.

Getting in touch

  • RTEMS Users Mailing list
  • Internet Relay Chat #rtems @ freenode.net
  • Individuals for FOSS.IN Workout aanjhan at gmail dot com and vattam dot santosh at @ gmail dot com

Participants

  • Aanjhan Ranganathan
  • Madhusudhan C S
  • Santosh Vattam
  • [add your name here]