Buy or roll your own OS? Neither with FreeRTOS. - Embedded.com

Buy or roll your own OS? Neither with FreeRTOS.

Many column inches have recently been dedicated to debating the future of 8-bit microcontroller (MCU) architectures, the longevity of which is, apparently, not clear. It is clear though that market share of low-cost, low pin count, and low-power 32-bit MCUs is growing rapidly. This trend is likely to continue and presents a significant opportunity for software to add value whilst presenting a real challenge for application developers.

The new generation of low-cost 32-bit devices typically integrate 32 to 512 kbytes of flash memory, 16 to 256 kbytes of RAM, and numerous communications peripherals—more than enough to make them capable of hosting applications of considerable complexity. When software reaches this level of complexity, real benefits can be gained by using an operating system or kernel. FreeRTOS is a real-time kernel that's designed specifically for embedded MCUs in this class, and as such has enjoyed considerable popularity growth over its six year life as the market for these devices has grown.

The old RTOS debate asks, should you buy or roll your own operating system? The real question is, why do either?

Last year, FreeRTOS was officially downloaded more than 77,500 times. This degree of popularity often surprises industry insiders, because FreeRTOS doesn't have a marketing budget and (until recently) has not been featured in any industry surveys (Note: FreeRTOS can be downloaded directly from Embedded.com ). It has grown because it meets the technical needs of practicing engineers and is a professional grade solution that can be used freely without being locked into a commercial commitment. Through this approach, FreeRTOS has gained the trust and support of many MCU makers and a huge community of engineers.

The rate at which FreeRTOS has been adopted highlights the need for software companies to re-think their approach to how engineers like to evaluate and buy software. There are, however, lots of free schedulers available that don't enjoy the same popularity, so other factors must have played a part in this growth.

Feedback from engineers indicates that three criteria are equally important:

  • proven commercial grade reliability
  • ease of use (each port comes with a pre-configured demo application)
  • license model and support when required

FreeRTOS license model
FreeRTOS is released as open source to its users, but in such a way as to remove what many see as obstacles to using open source components in commercial applications. It's important to note that FreeRTOS releases are moderated rather than pure open source. This means only software that is written or owned by FreeRTOS becomes an official release. Community contributed files are kept distinct and separate. This removes the risk of community contributed code resulting in accidental IP infringement if used in commercial products. This approach also ensures that the community can use, develop, and share code and ideas and build a strong open-source product from a robust platform.

Important to all developers who want to use FreeRTOS in a product is that the open-source license need not “infect” code outside of the scheduler itself. Proprietary source files remain closed source if the proprietary files provide significant and primary functionality that's distinct from that already provided by FreeRTOS itself. Simply stated, the FreeRTOS API acts as a boundary between open and closed source components. Code on the FreeRTOS side of the API which extends or modifies the kernel itself remains open source. Code on the application side which simply uses FreeRTOS features remains closed source.FreeRTOS is free. You needn't part with any money or information to download the source code or deploy FreeRTOS-based applications. There is even a free and active support forum. You have the option however of buying a standard commercially licensed version should you wish. Commercial licensing is provided by a third-party multi-national engineering company who license the rights to do so. No user information is passed between the companies and it's entirely the user's choice to take this route.

While this model may seem unusual at first, closer inspection shows that it makes sense because it benefits all the stake holders. For the original developers, it goes without saying that we like our code to be appreciated. For users, it provides application developers with security and peace of mind. And MCU vendors can use the code safe in the knowledge that their customers have somewhere else to go should they need support. Silicon vendors don't like to support third-party software themselves.

FreeRTOS provides the ultimate low risk option. You can evaluate and start your development in complete anonymity, then deploy using the open-source version or migrate to a commercial license at your own discretion. There's very little risk and the features and quality are comparable to or better than many commercial solutions.

Beyond FreeRTOS
SafeRTOS is a version of FreeRTOS that's been re-engineered specifically for use in safety-related systems. It's shipped with a third-party audited, accredited, and certified Design Assurance Pack that contains complete lifecycle safety documentation. This not only ensures complete transparency about its development and certification, but also provides a clear model of how to integrate the software with existing application development processes. Design assurance packs are available for IEC 61508 SIL3, FDA 510K, and EN 62304.

About the author
Richard Barry graduated with first class honors in Computing for Real Time Systems. He's been directly involved in the start up of several companies, primarily working in the industrial automation and aerospace/simulation markets. Barry is currently a director of Real Time Engineers Ltd. (owners of the FreeRTOS brand) and Head of Innovation at Wittenstein high integrity systems. He can be reached at .

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.