wiki:GSoC/2008/TinyRTEMS

Version 28 (modified by YanMiao, on Aug 8, 2008 at 8:50:41 PM) (diff)

/* Progress */

SOC TinyRTEMS

Project Description

RTEMS is a real-time embedded operating system. Currently, a minimum RTEMS application will automatically include part of reentrant C library, shutdown code and filesystem infrastructure. These codes are hard to remove because they are tightly coupled with other kernel components. TinyRTEMS would focus on breaking linkages between components so they can be configured by the user. The goal is to be able to provide the user with a full featured RTEMS library and defer as much configuration as possible to application configuration and link time.

In this project, I will introduce several changes to RTEMS source code and its build system to make it more 'tiny', configurable and scalable. These include: an alternative lightweight standard POSIX file I/O interface; more configuration options and simplified configuration steps; modifications to the source code to take more features out at the user's discretion. And finally I will give a well-written User's Manual and a Design & Implementation description in detail.

The original proposal is available here:

http://www.rtems.org/wiki/index.php/TinyRTEMS

http://www.rtems.org/wiki/index.php/Open_Projects

Mentor

Ray,Xu

Status

Currently I am working on the design description, specifically on the POSIX file I/O routines.

Project Schedule

1.Design Description( before 2008.5.30 )

2.Source code and Implemetation Description( before 2008.7.20 )

3.Test cases and Test Report( before 2008.8.10 )

4.User's Manual( before 2008.8.25 )

Progress

2008.4.25: Set up RTEMS development envrioment(ARM and i386); Get QEMU run; Review newlib C reentrancy code and learn some knowledge about autoconf and auotmake

2008.5.6 : ticker(rtl22xx bsp) now can run on skyeye

2008.5.18: splitted newlibc reent related files, made newlibc reent hooks optional, genenrated diff file for rtems-4.8.0; start to document the work that has been done.

2008.5.28: finish the first version of documents, Ray is reviewing it; preparing to next step

2008.6.4: discuss filesytem details with Ray

2008.6.16: finish coding 'device-only' filesystem, testing is underway(skyeye and qemu)

2008.6.30: integrate 'device-only' filesystem to rtems; changed ticker.exe to use printk instead of printf

2008.7.2: add doxygen style commets to the header file, split source files, make it one function per file

2008.7.6: make a new version of ticker according to Ray's suggestion

2008.7.8: update my code base to the CVS

2008.7.9: send patches( newlibc and filesystem ) to Ray for review

2008.7.11: send devfs code to Ray for review

2008.7.14: fixup code

2008.7.17: eliminate the _reent structure defined in RTMES, using the one defined in newlib instead

2008.7.19: testing newlib patch on real hardware(sparc)

2008.7.23: testing devfs code on real hardware(sparc)

2008.7.25: add a data member to the main device table structure; add devFS_stat function ; fixup code of devFS_Show function

2008.7.30: tesing new code on real hardware(sparc)

2008.8.5: with Ray's lasted patch for arm, rtems cvs can successfully run on skyeye; test minimum.exe with skyeye configuration of 32KB ram

2008.8.6: updated the comments in the header files

2008.8.8: sending Ray the latest document for review

Deliverables

Google Code Site: http://code.google.com/p/tiny-rtems/

Links to Source Code

  • TBD - list of URLs at Google Code

Student Information

My name is Miao,Yan. I am a second year granduate student from Institute of Software Chinese Academy of Sciences