Contributions and Development Projects
Contributions to eCos are always welcome. These may be in the form of a new package, enhancements to an existing package or bug fixes. A contribution may be from a individual or part of a collaborative project. Information on how to contribute is contained within the eCos FAQ.
The eCos maintainers welcome proposals for new eCos packages and enhancements to existing packages. If you have an idea for a new development, please talk to us as early as possible. The best place to initiate a discussion of your proposal is on the ecos-devel mailing list. If your proposal appears sound, we will add your project to the table below. By registering projects in this way, the possibility of duplicated effort is reduced, the potential for community involvement is enhanced and the eCos maintainers are able to offer guidance to help ensure that the final project deliverables will be acceptable.
As a matter of policy, contributions arising from registered projects will be considered for acceptance into the eCos repository with priority over broadly equivalent contributions developed in private. This policy is intended to encourage collaboration on new features and reduce the possibility of a community development being rejected in favour of a private development of similar scope and quality.
Licensing of contributions
Contributions to the eCos project should be licensed under the eCos License. It may also be possible to accept contributions containing third party code from certain trusted sources and covered by more liberal licenses, such as the BSD license. Please seek advice from the eCos maintainers in such cases.
Please note that we are unable to accept contributions which contain code licensed under the unmodified GNU General Public License (GPL) for incorporation into the eCos repository.
Any significant contribution (typically greater than 10 lines of code) must be accompanied by an assignment of copyright to the Free Software Foundation. Details of this procedure are available on the eCos Copyright Assignment page.
The rationale behind this policy is to avoid any possible confusion over the legal ownership of eCos, and to ensure that the contributor's employer or academic institution assents to the work being contributed. It also allows the copyright to be vested centrally so that the eCos license may be enforced. Successful enforcement of a software license is dependent on the cooperation of all copyright holders.
The eCos maintainers will advise contributors when a copyright assignment is necessary. If your employer does not consent to the disclaimer, or you do not hold copyright for all the contributed code, then a copyright assignment will not be possible and the contribution will not be accepted into the eCos repository. However, it may still be possible to list the contribution on this page.
This section lists eCos-related developments which have either not been contributed or not been accepted into the CVS repository for some reason.
Wei Yongming of Feynman Software has released an eCos port of their lightweight cross-platform Graphics User Interface support system named MiniGUI. It is available under both the GPL and a commercial license. More information can be found at the Feynman Software site, as well as the home of the open source MiniGUI project.
Andrew Lunn of Ascom has made available a port of the OpenSSL library. Due to export problems this library is not available and unfortunately will not become available from ecos.sourceware.org. Instead it is hosted at eCosCentric's FTP server as this is based in the UK, not the US. The package is distributed in EPK format and can be installed using the eCos package administration tool. It is available by FTP from ftp://ftp.ecoscentric.com/pub/contrib/openssl-1.9.6b.epk. Use shift-click on this link to save the file - some browsers incorrectly treat this file as text.
Be aware of the legal status of using encryption libraries like OpenSSL. The use of some encryption algorithms are patented in various territories, especially the US. Similarly some territories control the export of products containing encryption, again including the US.
LUA language support and pre-built Configtool versions
Xylanta Ltd hosts a eCos port for the LUA 5.0 programming language. They also host pre-built versions of the eCos Configtool (Cygwin only) and an experimental version of the Configtool for Cygwin that supports two repositories.
EtherCAT master library for eCos
The Flanders Mechatronics Technology Centre - FMTC - has decided to release their EtherCAT master implementation as open source software. The EtherCAT master library, together with its technical documentation can be obtained from http://ethercatmaster.berlios.de. The software has been written for and has been tested with the eCos operating system.
Port to Renesas H8S architecture
Uwe Kindler of cetoni GmbH has developed a port of eCos to H8S microcontroller architecture. The port includes various variant and platform ports (i.e. for EDOSK2674) and a number of drivers (i.e. Serial, Network, RTC...). cetoni also hosts a prebuild h8300-elf toolchain for eCos (Cygwin only) and a detailed porting guide for H8S variant and platform ports.
Port to Nios II architecture
A port of eCos for the Nios II architecture is under development at Zylin AS. The port is based on original work by Altera. It includes support for the Altera NEEK target and the OpenCores Ethermac.
Port to Game Boy Advance
Charmed Labs has developed the Xport which turns the Nintendo Game Boy Advance into an embedded development system, complete with eCos and RedBoot port.
Technical details and ordering information are available from Charmed Labs.
Port to easyCAN3 ARM CPU
Europe Technologies has provided a port to their easyCAN3 ARM-based microcontroller and in particular the EVM-CAN low-cost high performance development platform. This is available via FTP for download as a complete source repository snapshot. The sources will be integrated into the eCos development repository shortly.
Single precision math library and termios non-canonical mode
luoqi has ported FreeBSD's single precision portion of the math library to eCos. Luoqi has also added support for non-canonical mode in the existing termios support. The necessary patches are available to download here.
3G LAB projects
3G LAB were engaged in quite a number of projects that will enhance eCos. Some of them, like ROM filesystem and iPAQ port have already been incorporated into the development repository. Other projects of interest include:
Microwindows port to Linux synthetic target and Assabet
I-Jui Sung has done a preliminary port of Microwindows/Nano-X to the Linux synthetic and Assabet targets. This port differs from the iPAQ demo port in that it uses POSIX mqueues instead of a loopback TCP/IP socket, which is more lightweight. The Linux port comes with a framebuffer simulator for eCos that communicates with the real desktop. Downloads are available here.
Microwindows port to x86 target and Trident VGA card
Li Hui has also separately done a Microwindows port. This is to x86 systems using a Trident VGA card. It also includes the PC mouse support he wrote earlier that is mentioned separately below. A zip file containing the complete microwindows sources he used, mouse driver, and TVGA driver is available from here.
Port to Sony Playstation 2
Yaegashi Takeshi has ported eCos and RedBoot to the Sony PlayStation 2 based on the MIPS Emotion Engine. More information is available at http://ps2hacking.sourceforge.net/.
eSoap for eCos
Rosimildo daSilva has developed an embedded SOAP toolkit named eSoap that runs under eCos. More details are available at http://www.embedding.net/eSOAP. eSoap is free for non-commercial applications.
x86 NE2000 ethernet driver
Christian Plessl and Thomas Meyer have ported an Ne2000 driver from OpenBLT to eCos. It is restricted to the x86 PC port only. The README contains details and instructions from Christian's announcement to the ecos-discuss list. The driver package tarball and addto.ecos.db file can be downloaded here.
Kaffe Java VM
Ryouzaburou Suzuki has ported the Kaffe Java VM to eCos 1.3.1 on SH4. It is available for download here. Note that it is covered by the GNU General Public License.
Tristan Gingold has ported RTEMS libnetworking to eCos. This includes a FreeBSD-derived TCP/IP stack. The sources are available for download from ftp://ecos.sourceware.org/pub/ecos/contrib/io/tcpip/rtems/
Note that this contribution is not related to the eCos TCP/IP stack and may not be usable in the current release of eCos.
Thanks to our contributors
Complex number math library port
Ilija Kocho has contributed a port of complex number arithmetic functions from the newlib math library to eCos.
Single-precison floating point math library port
Ilija Kocho and Visar Zejnullahu have contributed a port of single-precision floating point arithmetic functions from the newlib math library to eCos.
Freescale Kinetis TWR-K60F120M board port
Mike Jones has contributed a port of eCos to the Freescale Kinetis TWR-K60F120M development board.
Freescale I2C driver
Tomas Frydrych has contributed an I2C driver for Freescale processors including Kinetis family parts.
STMicroelectronics STM32 ethernet driver
Jerzy Dyrda has contributed an ethernet driver for the STMicrolectronics STM32 processor family.
Freescale Kinetis flash driver
Nicolas Aujoux has contributed a flash driver for the Freescale Kinetis processor family.
Microchip ENC424J600 ethernet driver
Ilija Stanislevik of SIvA doo has contributed an ethernet driver for the Microchip ENC424J600 ethernet part over SPI.
Freescale Kinetis KwikStik board port
Tomas Frydrych has contributed a port of eCos to the Freescale Kinetis KwikStik development board.
Actel SmartFusion port
Christophe Coutand has contributed a port of eCos to the Actel SmartFusion evaluation board.
Silicon Storage Technology SST25xx SPI flash driver
Christophe Coutand has contributed an SPI flash driver for the Silicon Storage Technology SST25xx device family.
Atmel AT25DFxxx SPI flash driver
Christophe Coutand has contributed an SPI flash driver for the Atmel AT25DFxxx device family.
Olimex LPC1766-STK port
Ilija Kocho has contributed a port of eCos to the Olimex LPC1766-STK development board. The port includes serial, ethernet and wallclock device drivers.
Stellaris LM3S811 port
Christophe Coutand has contributed a port of eCos to the Luminary Micro Stellaris LM3S811 evaluation board. The port includes ADC and I2C device drivers.
USB mass storage function
Christophe Coutand has contributed a USB mass storage function driver. It has been tested with eCos USB slave drivers for the AT91 and STM32 processor families.
STMicroelectronics STM32 USB slave driver
Chris Holgate has contributed a USB slave driver for the STMicroelectronics STM32 CPU family.
Atmel AT91 ADC driver
Christophe Coutand has contributed an ADC driver for the Atmel AT91 CPU family.
Simon Kallweit has contributed a port of lwIP 1.3.2 to eCos. The port supports both ethernet and SLIP interfaces. It also includes an experimental implementation of PPP, pending an update of the upstream lwIP PPP support planned for lwIP 1.4.
Uwe Kindler has contributed a port of uSTL 1.3 to eCos. uSTL is a partial implementation of the C++ Standard Template Library (STL) which is optimised for minimal code size.
Anthony Tonizzo has contributed a relocating object loader for eCos. The original contribution supported the loading of object code from an eCos filesystem. Gernot Zankl has extended the package to support the loading of object code directly from ROM.
Sergei Gavrikov has contributed a port of PDCurses 3.4 to eCos. The contribution includes a PDCurses driver for eCos serial I/O, enabling eCos applications to present a text user interface on a remote terminal.
Holger Schurig contributed a port to the PXA250.
ARM AT91 Watchdog driver
Thomas Koeller of Basler Vision Technologies has contributed a watchdog driver for the ARM AT91 CPU.
Bob Koninckx at the Department of Mechanical Engineering at the Katholieke Universiteit Leuven has contributed ports to two PowerPC MPC555 based boards, the CME0555 eval board from Axiom Manufacturing and the ec555 from Wuerz Elektronik. Both ports include FLASH, serial and wallclock drivers.
There are also some extra packages for the ec555 port in EPK format containing device drivers for the A/D and D/A convertors as well as the Time Processor Unit.
Yoshinori Sato has contributed a port to the Hitachi H8/300. This port will be made available in the upcoming eCos v2 release, but until then you can get more details from Yoshinori's website.
lwIP lightweight TCP/IP stack
Jani Monoses at Astechnix SRL has contributed a port of the lwIP lightweight TCP/IP stack to eCos.
Improved AT91 serial driver
John Recker at HP has written a new serial driver for the AT91 port, designed to drop fewer characters at high bit rates.
Andrew Lunn at AscomAndrew Lunn at Ascom has contributed many useful things back to the eCos community, including an FTP client, DNS support, OpenSSL, linux synthetic target flash driver and many many small fixes and improvements.
The entire eCos community is grateful to Andrew and Ascom for their excellent efforts!
The eCos community would also like to thank Richard Panton and Dominic Ostrowski working for 3GLAB who have contributed many excellent features, including the initial Compaq IPAQ port, ROMFS filesystem and (soon) JFFS2 filesystem support.
ARM Integrator HAL and drivers
Philippe Robin at ARM has contributed a port to the ARM Integrator platform.
PC mouse driver
Li hui has developed some sample code that can be used to make a PC serial mouse driver, and is available here.
ARM Evaluator-7T serial device drivers
Lars Lindqvist of Combitech Systems contributed serial device drivers for the ARM Evaluator-7T (AEB-2) platform. The sources are in the anonymous CVS development repository.
PC platform HAL
Patrick O'Grady developed the initial port of eCos for the PC platform. The sources are included in the eCos net distribution as of release 1.3.1.
Synthetic Linux platform HAL
Chris Provenzano developed the eCos i386/Linux synthetic target. This is essentially a port of the eCos HAL to a Linux process and allows the developer to run eCos applications under Linux as if they were native Linux applications. The sources are included in the eCos net distribution as of release 1.2.1.
Motorola MPC8xxFADS platform HAL
Kevin Hester developed an eCos HAL for the Motorola MPC8xx Family Application Development System platform. The sources are included in the eCos net distribution as of release 1.2.1.
Arm Industrial Module AIM711 Port
Roland Caßebohm of Vision systems developed a full port of eCos to the Vision Systems AIM711. This port includes HAL, FLASH, serial and wallclock device drivers, plus a patch to make an existing ethernet device driver work with this hardware.
Andrew Lunn would like to thank Ronetix for the loan of a PEEDI JTAG Emulator
In addition, the eCos team recognizes the following individuals who have contributed to eCos:
About this site
We acknowledge the support of Red Hat to the open source community in providing the computing resources at ecos.sourceware.org.