= 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 [http://rtems.com/wiki/index.php/MMU_Support 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 [http://rtems.com/wiki/index.php/RTEMS_Coverage_Analysis 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. The ultimate goal of Google Summer of Code 2009 projects was to get integrated into the source tree for 4.10 release with additional improvements. This in combination with several other tasks listed in the [http://rtems.com/wiki/index.php/RTEMS_Workout_at_FOSS.IN#Tasks Tasks] section forms the secondary objective 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 world. = Pre-requisites = = Hardware/Software = * Laptop with GNU/Linux installed on it (preferably a RedHat/Fedora based distro). * [http://www.rtems.com/wiki/index.php/Virtual_Machines_for_RTEMS_Development Virtual Machine] images will be provided for development. So installing [http://www.vmware.com/products/player/ VMWare Player] or [http://www.virtualbox.org/ VirtualBox] aprior will come in handy. = 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 [http://www.rtems.com/onlinedocs.html Online Docs] # [http://www.rtems.com/moodle/course/category.php?id=2 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. * Build instructions for the toolchain for Debian/Ubuntu - [http://rtems.com/wiki/index.php/Building_the_RTEMS_toolset_on_Ubuntu here] * Or for a [http://rtems.com/wiki/index.php/Quick_Start Quick Start] using prebuilt tools * Run the custom "[http://rtems.com/wiki/index.php/GSoC_Getting_Started 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 [http://ltp.sourceforge.net/coverage/lcov.php 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 [http://code.google.com/p/rtems-mmu-support/wiki/GSoCFinalReport 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 = * [http://www.rtems.org/ml/rtems-users 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]