= Open Projects = This page captures ideas for RTEMS projects. They range from OS projects to development environment to testing to just about anything else. If you like one of the ideas, you can pitch in and tackle it. If you aren't able to code and test it yourself, consider sponsoring one of the core RTEMS developers to do it for you. This is really the only way things get done -- USERS LIKE YOU KEEP RTEMS DEVELOPMENT ALIVE!!! The projects on this page are lumped into broad categories but there is no prioritization applied to the order. It is just a dump of ideas. :) = Development Environment Oriented = * Integrate RTEMS Development Environment with Eclipse. Since RTEMS has multiple targets, this project would focus on getting Eclipse working nicely with powerpc/psim, sparc/sis, and i386/pc386(on qemu). * Integrate CEXP into RTEMS Main Project and provide instructions and a Live CD for this target environment on qemu. The goal is to have a baseline that can be easily updated and re-released as new RTEMS versions come out. * Application Configuration GUI. The goal is to have a graphical tool to configure RTEMS for a certain Application e.g. max number of tasks, semaphores etc. It could generate a userconf.h which includes confdefs.h. One solution could be a Wizard/Editor for Eclipse. * RTEMS Tool Support on MacOS X. = GNU Tools = * Automate gcc testing on RTEMS targets. * Implement Multilib support for GNU Ada (GNAT) run-time libraries in GCC. * Get GJC (GNU Java Compiler) to work out of the box with RTEMS = CPU Simulators = There are a variety of potential projects listed on the [wiki:Emulator Emulator] and [wiki:Skyeye Skyeye] pages. Some of these involve addressing issues in the simulator itself. Others involve developing BSPs for specific simulators. This is an important area of work since any target that can be tested easily and in an automated fashion on a simulator is always in better shape. = RTEMS Run-Time Oriented = * Instrument RTEMS so that a timeline visualization tool can be used to "place a scope" on a running RTEMS system. This may the development of the visualization tool or an existing may be able to be leveraged. Greg Menke of NASA has used GNU plot to do a simple version of this and may have advice. Currently Chris Johns has made the most progress on this type of activity with his monitor. * Implement POSIX Asynchronous IO. * Implement POSIX (named) FIFOs and (unnamed) Pipes. See [wiki:Projects/POSIXFIFOs POSIXFIFOs] for technical details. * Implement missing file descriptor dup cases. * Implement improved tracking of the Priority Ceiling and Inheritance mutexes held by a thread. * Reimplement Classic API notepads and POSIX keys using code like std::map but in C. I think an implementation of the map code is available under an appropriate license as a starting point. * Reduce footprint of minimum RTEMS application. Currently a minimum RTEMS application assumes that you want items like a reentrant C library, shutdown code and a minimal filesystem infrastructure. Some ideas in this area are captured at [wiki:Projects/TinyRTEMS TinyRTEMS]. The project would focus on breaking linkages between components so they can be configured out by the user, dropped out automatically at link time, or other mechanisms. 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. * Update and clarify PCI support for Intel x86 targets. * Convert more NIC drivers from FreeBSD to RTEMS. * Add an ordered constructor type system for automatic manager initialisation. No no-rel object files. This should be general enough to support RTEMS managers, drivers and BSD sysctl type nodes. * RTEMS based RT-VMM (Real-Time Virtual Machine Monitor). Current RTEMS can not support to run another OS (such as Linux or uClinux). We want to add hypervisor (or Virtual Machine Monitor) function on RTEMS, then RTEMS has the power like XEN that can run Linux or other OS, but RTEMS also maintain original hard Real-Time funtions. First, we will try to make RTEMS run uClinux on ARM simulator SkyEye( http://www.skyeye.org ), then we will try to make RTEMS run ARM Linux on XSCALE CPU based board or SkyEye simulator. We consider virtualization techs on Embedded RTOS area has potential value. (from chyyuu@gmail.com) * port LWIP to RTEMS * USB host stack for RTEMS. Port the latest FreeBSD USB stack for RTEMS. * New TCP/IP stack supports IPv6 * Add optional capability to use merged Heap and Workspace [PR46]. = RTEMS Testing = * More POSIX API Timing Tests