A Better Open Source

[About FreeRTOS]

Open source software is the source of frequent debate - where often the same old pro and con arguments are raised. Every effort is made to ensure FreeRTOS is as open and easy to use as possible, so this page is provided to demonstrate why many anti open source arguments are just not applicable when using FreeRTOS.
Argument
Counter-argument when using FreeRTOS
"Open source software is badly supported" FreeRTOS.org has an active support forum and also boasts optional commercial support which is provided by a large engineering company.
"Incorporating open source means you risk having to open source your entire application" FreeRTOS.org is licensed such that only the kernel is open source. Application code that uses the kernel can remain closed source and proprietary.
"Open source software ends up costing much more" FreeRTOS.org is completely free to download, experiment with and deploy. Each port comes with a pre-configured demo application to ensure you start with a known good and working project that can then be tailored to meet your needs - getting you up and running very quickly. Should at some point you require commercial licensing or support then packages are available at very competitive prices, so you have nothing to loose.
"Open source software is badly written" FreeRTOS.org is commercial grade, stable and reliable. There are even safety critical versions based on it, with improvements from the safety critical certification being fed back into the open source code base (although not the new safety related features).
"Open source code becomes fragmented, with many different versions available" The FreeRTOS.org release procedure is very tightly controlled with all official ports being updated simultaneously. Latest and past releases are available in .zip files. The head revision is available from a publically accessible SVN repository. Naturally, occasionally errors are made, but these are quickly spotted by the large user base (more than 6000 downloads per month [conservative figure given]) and are documented as soon as they are brought to our attention.
"Use of open source code leaves you at risk of IP infringement" Only code of known origin is included in official versions. If you are still concerned about IP infringement, purchase a commercial license to receive standard indemnification.
"Open source projects have no longevity" Neither do some commercial products. I could name a few commercial tools that are now defunct, if these had been open source at least users would have the source and could continue to use the tool. As it happens FreeRTOS.org has been around for nearly 6 years already, and is going very strong.

RTOS Implementation

This section describes part of the FreeRTOS implementation.

The pages will be helpful if you:

  • wish to modify the FreeRTOS source code.
  • port the real time kernel to another microcontroller or prototyping board.
  • are new to using an RTOS and wish to get more information on their operation and implementation.
  • There are two chapters accessible from the menu frame on the left:


    For further information see the FreeRTOS ColdFire Implementation Report. This was written by the Motorola ColdFire port authors, and details both the ColdFire source code and the development process undertaken in producing the port.

    Go directly to www.FreeRTOS.org if you cannot see the menu on the left, alternatively click here if your browser does not support frames.

    Next: Section 1 - RTOS fundamentals
    ... Next: Section 2 - RTOS Implementation Example

safe and open RTOS

SAFERTOSTM and OPENRTOSTM


SafeRTOS

SafeRTOS is a safety certified SIL3 RTOS that has the same functional model as FreeRTOS.org. It was created under license by WITTENSTEIN high integrity systems, and certified as having been developed with strict conformance to IEC 61508 by TÜV SÜD. The resultant Design Assurance PackageTM can be used to demonstrate conformance to many other formal development standards.

WITTENSTEIN high integrity systems have a proven track record in the production of high quality, reliable, software systems. They were able to directly apply the experienced gained from working in the aerospace and medical industries to the development of the SafeRTOS system - experience that enabled them to produce a system that passed the TÜV SÜD audit at the first time of asking.

IEC 61508 is a safety standard for electrical, electronic and programmable electronic systems. It defines the analysis, design, implementation, production and test requirements for safety related systems in accordance to the SIL level assigned to the system. The Safety Integrity Level (SIL) is assigned according to the risks associated with the use of the system under development, with a maximum SIL 4 being assigned to systems with the highest perceived risk.

Visit the SafeRTOS pages on the High Integrity Systems WEB site for more information.

New: Read the feature article published in Embedded Systems Design Europe describing the compiler verification technique used during the development of SafeRTOS.


OpenRTOS

OpenRTOS is FreeRTOS.org provided under a commercial license that makes no reference to the GPL - modified or otherwise.

OpenRTOS provides commercial licensing and optional support packages for FreeRTOS.org. WITTENSTEIN high integrity systems are the only organisation authorized to provide the software under a commercial license.

WITTENSTEIN high integrity systems also provide tailored development and support packages, with direct access to experienced engineers who gained a detailed knowledge of the product through their work on the SafeRTOS certification. Development activities include:

  • Writing part or all of your embedded software application on your behalf.
  • Creating new FreeRTOS.org and OpenRTOS ports and board support packages.
  • Providing tailored middleware products and drivers to meet the individual needs of you application.
  • Providing training in software development and real time operating system theory and usage.
  • Embedded platform preparation.

The SafeRTOS FAQ provides information on the differences between FreeRTOS.org, OpenRTOS and SafeRTOS.

Visit the High Integrity Systems standard products and services division for more information.

Embedded Linux Consortium (ELC),


The ELC Platform Specification is now hosted by The Linux Foundation

On September 9, 2005 - The Open Source Development Labs (OSDL) now The Linux Foundation, and the Embedded Linux Consortium (ELC), announced a strategic agreement around embedded Linux. Under the agreement, the Embedded Linux Consortium transferred the ELC Platform Specification (ELCPS) and related intellectual property to OSDL now The Linux Foundation. The ELCPS can be found by following the navigation link to the left.

Embedded Linux Platform Specification

Embedded Linux Platform Specification PDF Version

LynxOS

LynxOS Priority Support is comprehensive support for OS development seats and selected tools. Its rich feature set appeals to customers who need fast response and interim fixes for critical problems.

LynxOS Priority Support is purchased for a 12-month period and may be applied to the currently shipping release of LynxOS, or backward through one prior release. LynxOS Priority Support includes:

  • access to LynuxWorks' North American and European support centers during their respective business hours
  • initial call­back within four hours during normal business hours
  • software problem reporting via call-tracking numbers
  • software problem escalation for critical issues
  • interim fixes (where appropriate) for critical issues relating to LynxOS only
  • software subscription service for revision updates
  • access to the LynuxWorks FTP site

Upgrade to LynxOS Long-Term Support.

Porting-Kit and Source-Code Support

LynuxWorks offers Porting-Kit Support for customers who are modifying board support packages (BSPs) in order to port LynxOS to a custom computer board embedded in their product.

Source-Code Support is available for customers who are working directly with the source of LynuxWorks' licensed software products.

Contact LynuxWorks Support for more details.

LynuxWorks Public License


IMPORTANT—READ CAREFULLY: This Software End-User License Agreement ("EULA") is a legal agreement between you (either an individual or a legal entity) ("Licensee") and LynuxWorks, Inc., a Delaware corporation, with offices at 855 Embedded Way, San José, CA 95138 ("LynuxWorks") for certain software product(s), which include(s) computer software and may include "online" or electronic documentation, associated media, and printed materials ("Licensed Product").

Copyright laws and international copyright treaties, as well as other intellectual property laws and treaties protect the Licensed Product. The Licensed Product is licensed, not sold.

In the event of inconsistency or conflict between the language of this EULA and any other Agreement, the provisions of this EULA shall govern.

By installing, copying, or otherwise using the Licensed Product, you agree to be bound by the terms of this EULA. If you do not agree to the terms of this EULA, do not install, copy, or otherwise use the Licensed Product. By installing, copying, or otherwise using any components of the Licensed Product that you receive separately as part of the Licensed Product you agree to be bound by any additional license terms that accompany such distribution. If you do not agree to the additional license terms that accompany such distribution, you may not install, copy, or otherwise use such distribution.

License

Upon your acceptance of the terms and conditions of this EULA, LynuxWorks grants you the right to use the Licensed Product in the manner provided below.

LynuxWorks grants to you as an individual a personal, nonexclusive, nontransferable license to make and use copies of the Licensed Product for the sole purposes of designing, developing, and testing your software product(s) ("Applications"). You may install copies of the Licensed Product on an unlimited number of computers provided that you are the only individual using the Licensed Product. If you are an entity, LynuxWorks grants you the right to designate one, and only one, individual within your organization that shall have the sole right to use the Licensed Product in the manner provided above. You may at any time, but not more frequently that once every six (6) months, designate another individual to replace the current designated user by notifying LynuxWorks, so long as there is no more than one designated user at any given time.

Copying, redistribution, and reverse engineering rights are not granted under this license. Any violation by you of the applicable license terms shall immediately terminate your license. If you wish to install LynuxWorks' software programs on more than one computer, please contact LynuxWorks to purchase additional licenses. If redistribution or copying rights are desired please contact LynuxWorks for licensing information and royalty fees.

User obligations. Licensee shall promptly provide LynuxWorks with copies of all Derivative Works made by Licensee or on Licensee's behalf. Derivative Works shall include, but not be limited to:

  • Modifications, enhancements, adaptations, translations and other changes to the Software which utilize, are based upon or integrate the Software, including all associated documentation;
  • Documentation to accompany Licensee's authorized distribution of the Software;
  • Software modules that are closely related to the Software, or that use facilities of the Software such as protocol task support, or that extend or modify core Software facilities.

License to Derivative Works. Licensee hereby grants to LynuxWorks a non-exclusive, fully transferable, royalty-free, worldwide, unrestricted, irrevocable license to do the following, without any obligation to account to Licensee, or otherwise provide any information or materials to Licensee regarding LynuxWorks activities under this license:

  • Compile, load and execute the Derivative Works on hardware or other computing technology under the control of LynuxWorks, and reproduce copies of the Derivative Works;
  • Modify, enhance, adapt, translate, integrate and create derivative works or the Derivative Works (collectively "LynuxWorks Changes");
  • Integrate the Derivative Works into the Software and/or other LynuxWorks software or products, and distribute the Derivative Works as a stand alone product or as integrated into the Software;
  • and Use the Software to create usual and customary documentation, and distribute such documentation.

GENERAL TERMS THAT APPLY TO APPLICATIONS AND DERIVATIVES

LynuxWorks grants you a nonexclusive, royalty-free right to reproduce and distribute the object code form of any portion of the Licensed Product ("Derivatives"). Copies of Derivatives may only be distributed with and for the sole purpose of executing Applications permitted under this License Agreement that you have created using the Licensed Product. Under no circumstances may any copies of Derivatives be distributed separately.

INDEMNIFICATION

The license granted in this EULA for you to create your own Applications and distribute them and the Derivatives (if any) to your customers is subject to all of the following conditions: (i) all copies of the Applications you create must bear a valid copyright notice, either your own or the copyright notice that appears on the Licensed Product; (ii) you may not remove or alter any copyright, trademark or other proprietary rights notice contained in any portion of the Licensed Product; (iii) Derivatives, if any, shall be licensed to your customer "as is" (LYNUXWORKS MAKES NO WARRANTIES OR REPRESENTATIONS VIS-A-VIS YOUR CUSTOMER WITH RESPECT TO DERIVATIVES, AND LYNUXWORKS EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES VIS-A-VIS YOUR CUSTOMER, WHETHER EXPRESS OR IMPLIED, ORAL OR WRITTEN, INCLUDING, BUT NOT LIMITED TO ANY IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE, WHETHER OR NOT LYNUXWORKS KNOWS, HAS REASON TO KNOW, HAS BEEN ADVISED OR IS OTHERWISE AWARE OF SUCH PURPOSE); (iv) you will indemnify and hold LYNUXWORKS, its related companies and its suppliers, harmless from and against any claims or liabilities arising out of the use, reproduction or distribution of your Applications; (v) your Applications must be written using a licensed, registered copy of the Licensed Product; (vi) your Applications must add primary and substantial functionality, and may not compete with the Licensed Product; (vii) you may not use LYNUXWORKS' or any of its suppliers' names, logos, or trademarks to market your programs, except to state that your program was written using the Licensed Product.

WARRANTY DISCLAIMER

THE LICENSED PRODUCT IS LICENSED TO YOU "AS IS". TO THE MAXIMUN EXTENT PERMITTED BY APPLICABLE LAW, LYNUXWORKS ON BEHALF OF ITSELF AND ITS SUPPLIERS, DISCLAIMS ALL WARRANTIES AND CONDITIONS, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT WITH REGARD TO THE LICENSED PRODUCT. THIS WARRANTY DISCLAIMER NOTWITHSTANDING, YOU MAY HAVE SPECIFIC LEGAL RIGHTS WHICH MAY VARY FROM STATE/JURISDICTION TO STATE/JURISDICTION.

LIMITATION OF LIABILITY

LYNUXWORKS SHALL NOT UNDER ANY CIRCUMSTANCES BE LIABLE TO YOU BASED ON FAILURE OF THE LICENSED PRODUCT IF THE FAILURE RESULTED FROM ACCIDENT, ABUSE OR MISAPPLICATION, NOR SHALL LYNUXWORKS UNDER ANY CIRCUMSTANCES BE LIABLE FOR SPECIAL DAMAGES, PUNITIVE OR EXEMPLARY DAMAGES, DAMAGES FOR LOSS OF PROFITS OR INTERRUPTION OF BUSINESS OR FOR LOSS OR CORRUPTION OF DATA. ANY AWARD OF DAMAGES FROM LYNUXWORKS TO YOU SHALL NOT EXCEED THE TOTAL AMOUNT YOU HAVE PAID TO LYNUXWORKS IN CONNECTION WITH THIS EULA

SUPPORT AND UPDATES

No support or updates are provided under this Agreement.

GENERAL PROVISIONS

This EULA may only be modified in writing signed by you and an authorized officer of LYNUXWORKS. All terms of any purchase order or other ordering document shall be superseded by this EULA. If any provision of the EULA is found void or unenforceable, the remainder will remain valid and enforceable according to its terms. If any remedy provided is determined to have failed for its essential purpose, all limitations of liability and exclusions of damages set forth in this EULA shall remain in effect.

This EULA shall be construed, interpreted and governed by the laws of the State of California, U.S.A. The EULA gives you specific legal rights; you may have others, which vary from state to state and from country to country.

LYNUXWORKS reserves all rights not specifically granted in this EULA.

Micro Linux

The Linux/Microcontroller project is a port of Linux to systems without a Memory Management Unit (MMU).

Pronounced "you-see-linux", the name uClinux comes from combining the greek letter "mu" and the english capital "C". "Mu" stands for "micro", and the "C" is for "controller". uClinux first ported to the Motorola MC68328: DragonBall Integrated Microprocessor. The first target system to successfully boot is the PalmPilot using a TRG SuperPilot Board with a custom boot-loader created specifically for our Linux/PalmPilot port.


Sept 2008
Jim Donelson has volunteered to set up a sourceforge uClinux project page in support improving uClinux-dist download speeds. The URL for the download page is: http://sourceforge.net/projects/uclinux/download

August 2008
The current uClinux-dist release is dated August 8, 2008. Here is a quick links to the tar.gz and tar.bz2 packages. Please when downloading pick either the tar.gz or the tar.bz2 version and not both as they are the same file.

  • http://www.uclinux.org/uClinux/dist/uClinux-dist-20080808.tar.gz
  • http://www.uclinux.org/pub/uClinux/dist/uClinux-dist-20080808.tar.bz2

July 2008
Again this year several uClinux and embedded developers will all be at the Ottawa Linux Symposium (Ottawa Canada July 23-26). The Embedded Linux BOF hosted by Tim Bird is scheduled for Wednesday at 6-7 PM and is immediately followed by the uClinux BOF hosted by Mike Frysinger, Robin Getz and Michael Durrant is scheduled for Wednesday at 7-8 PM

June 2008

The Freescale Technology Forum held a few session again this year that included support for its V2/V3 ColdFire cores featuring the use of uClinux as its Linux OS. The following link shows a video shot at the event demoing a ColdFire MCF53281 processor using uClinux to power an LCD driver while delivering Voice over IP:

July 2007
Greg Ungerer has been posting patches against the dist for those wishing to follow the mid-release updates. The Patches can be found at the following link: http://www.uclinux.org/pub/uClinux/dist/patches/ Feed back on these patches can be posted to the uClinux-dev mailing list. If you wish to subscribe to the mailling list you can do it here https://mailman.uclinux.org/mailman/listinfo/uclinux-dev/.


What is uClinux?

The original uClinux was a derivative of Linux 2.0 kernel intended for microcontrollers without Memory Management Units (MMUs). However, the Linux/Microcontroller Project has grown both in brand recognition and coverage of processor architectures. Today's uClinux as an operating system includes Linux kernel releases for 2.0 2.4 and 2.6 as well as a collection of user applications, libraries and tool chains.

GETTING STARTED

Using uClinux is an excellent way to embed your system! Whether you are an enginner, student, hobbiest, Linux-enthusiast, or all the above :P, getting started with uClinux is a smooth and painless process. A good starting point for the most up-to-date resources and information is the uClinux-dist and this Guide to getting started with uClinux.

Riaan van Boom put together a quick start document for people new to uClinux. This document is a step by step guide to setting up the software up to a point where the kernel can be downloaded to the evaluation board.

For some older information, You can purchase an official distribution CD, or download all the necessary files, just click below to see the "getting started" guides!


uClinux has successfully been ported to the Cisco 2500, 3000, 4000 routers. The patch allowing uClinux to run on the Cisco 2500/3000/4000 routers was completed by Koen De Vleeschauwer. The picture on the left is of a CISCO 3000 running uClinux at Arcturus Networks' Toronto office. The picture was taken by an AXIS 2100 web camera (also running uClinux).

uClinux is the leader in portability. The wide range of Open Source ports is proof of this. Community members from all over the world have been porting uClinux since its release in 1998. While originally developed for the Motorola 68000 chip, the number of available ports is always expanding. If your port is not listed here, or your commercial product using uClinux is not listed, drop us a note at info@uclinux.org.


Ported Microcontrollers and Microprocessors

  • uClinux on the Motorola DragonBall, and other 68K Derivatives
  • Be sure to download the binaries and source code [here].
    uClinux was first released to the public domain supporting the Motorola DragonBall (M68EZ328), Motorola's M68328, and the M68EN322. Since then, uClinux has grown exponentially, as the worlds greatest MMU-less chips receive there own ports.

  • uClinux on Motorola ColdFire
  • Information on the ColdFire port is found here: http://www.uclinux.org/ports/coldfire/index.html.
    Be sure to download the binaries and source code [here].

  • uClinux on the ADI Blackfin
  • Information on the ADI Blackfin processor can be found at blackfin.uclinux.org

  • uClinux on the ETRAX
  • uClinux on Motorola QUICC - Quad Integrated Communications Controller
  • Information on the mc68360 QUICC port is found here: http://www.uclinux.org/ports/mc68360/README.html.
    Be sure to download the binaries and source code [here].

  • uClinux on the ARM7TDMI and MC68EN302
  • Information on the ARM7TDMI port is found here: http://www.aplio.com/B/B2111.htm
    Information on the MC68EN302 port is found here: http://aplionet.aplio.fr/page2.htm
    Be sure to download the binaries and source code for the ARM7TDMI [here].
    Be sure to download the binaries and source code for the MC68EN302 [here].

  • uClinux on Sigma Design DVD system on chip sets
  • Information on the Sigma Design DVD system on chip products can be found at www.sigmadesigns.com Sigma Designs' reference for this ARM core system on chip makes use of uClinux. Chances are your home DVD player already runs uClinux! A copy of their product release source code can be found [here]
    Information on the ETRAX port of uClinux is found here: http://www.developer.axis.com/software/.
    Be sure to download the binaries and source code [here].

  • uClinux on Intel i960
  • Information on the i960 port of uClinux is found here: http://www.cse.ogi.edu/~kma/uClinux.html
    Be sure to download the binaries and source code [here].

  • uClinux on PRISMA

    More information on this hobbyist project is found here: http://ds.dial.pipex.com/town/way/fr30/

  • uClinux on Atari 68k

    More information on this hobbyist project is found here:http://www.esat.kuleuven.ac.be/~pcoene/atari.html

  • uClinux on the Microblaze

    Microblaze is a highly-parameterisable 32 bit RISC soft-core processor targetted for Xilinx FPGAs. The ability to customise the processor (e.g. hardware arithmetic support, caches on/off, flexible bus architecture) creates both opportunites and challenges for Linux kernel configuration.

    The uClinux port to Microblaze was done by Dr John Williams in the Embedded Systems group at the University of Queensland in Brisbane, Australia, and is part of their reconfigurable computing research program. The project home page is http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux. More information on the Microblaze can be found at http://www.xilinx.com/edk.

  • uClinux on the NEC V850E

    The V850E is a small RISC processor designed by NEC, usually used in embedded applications. For more information on uClinux/v850, see the web page at http://www.ic.nec.co.jp/micro/uclinux/eng/ (Japan) or http://www.ee.nec.de/uclinux (Europe), or send email to uclinux-v850@lsi.nec.co.jp.

  • uClinux on H8

    More information on this project can be found in the H8 pages

    Devices running uClinux

  • Arcturus Networks has a microcontroller module designed specifically to run uClinux. It is called the uCsimm. More information can be found at the uCsimm website.

  • SnapGear Inc produces both consumer and developer products based upon uClinux. The SecureEdge (TM) is a family of reference designs for secure, Internet-ready appliances. As a development platform the SecureEdge (TM) makes it is easy to quickly prototype deeply embedded applications. Customers have built diverse applications such as gas station forecourt control with e-commerce, government sports/betting regulatory controllers, and satellite protocol optimized remote access routers. One notable project has been the BMS player developed for MP3.com. SnapGear Inc provides total lifecycle services from conceptual design through to manufacturing and even global fulfillment. Partners include Motorola and Hitachi.

  • Aplio has several uClinux-based products, including the ATMEL ARM7TDMI based voice-over-IP telephone. The Aplio/Phone allows you to talk for as long as you want without incurring any long-distance charges. Aplio also offers the AT91 Development Board. This is a helpful tool for a development team using the Aplio/Trio to design an Internet Appliance.


  • AXIS ported uClinux to their ETRAX chip in order to develop a commercial product, their AXIS 2100 Network Camera. It is a digital indoor camera with direct network attachment.


  • ADOMO have a product line of great ColdFire based set top home thin appliances. Check them out [here], or read [this] article from linuxdevics.com.

  • TABO software developed a Programmable Logic Controller that uses Arcturus Networks' uCsimm and runs uClinux. Read this linuxdevices.com article on it. Contact TABO at tabo@niagra.com.

  • ATMEL has an ARM-based evaluation board, the AT91, that runs uClinux.

  • Arnewsh Inc. also makes evaluation boards that run uClinux.

  • CISCO 2500/3000/4000 Koen De Vleeschauwer has created a patch that allows uClinux to run on older MC68EC030 based CISCO routers (2500/3000/4000). It requires 4MB of RAM. The patch file will be moved into the uClinux archive in the next few days. For now the patch can be found at http://users.belgacom.net/gc376810/uClinux-cisco2500-0.1.tar.gz
  •