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:
Currently I am working on the design description, specifically on the POSIX file I/O routines.
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 )
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); console driver and our CAN driver works successfully with devfs code
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; add comments to the testcase
Google Code Site: http://code.google.com/p/tiny-rtems/
Links to Source Code
- TBD - list of URLs at Google Code
My name is Miao,Yan. I am a second year granduate student from Institute of Software Chinese Academy of Sciences