In my interview with Richard Barry, the founder of the FreeRTOS project, we get interesting insights into the history and future of FreeRTOS, along with his personal thoughts on where we are heading.
Additionally, Richard elaborates on IoT, real-time operating systems, embedded tools, and the challenges and future of the embedded industry in general.
Richard Barry, the founder of FreeRTOS
What inspired you to write and release FreeRTOS?
It’s going back more than ten years, so a little lost in the midst of time, but the origins of the idea for FreeRTOS are found in a consulting project I undertook. I was tasked with identifying an alternative to an RTOS that was already being used in a commercial product, but was costing too much in royalties. Having concluded that the application only needed a small solution, and therefore that the larger commercial RTOSes didn’t offer good value, I started looking for a suitable open source RTOS. However, after finding the open source options had too large a learning curve due to poor documentation, were badly supported, and had suspect quality, I ended up recommending a commercial system anyway – albeit a royalty free one.
When the project was over I got to wondering how many other people had been through the same searching process, there must have been thousands, so, mainly because I’m a geek and find this kind of thing fun, I set about creating the solution I had been looking for myself. After publishing the original version of FreeRTOS it became apparent I had been right, there obviously were thousands of people looking for this solution.
I then set about things more formally – first listing all the often stated risks of using free software, such as poor quality, risk of IP infringement, no support, etc., and devising a development and distribution model for FreeRTOS that mitigated all the perceived risks. To use the same three examples, FreeRTOS is MISRA compliant to assist quality, has no IP infringement risk, and is supported, etc. That is how the FreeRTOS value proposition became so compelling - FreeRTOS is basically a commercial operating system you get for free.
Can you say something about the current state of FreeRTOS and its adoption?
Lots, how long have you got! I don’t want to bore you though, so will say the facts speak for themselves. FreeRTOS has come top in class in every EE Times survey since it’s been included in the survey, and activity around the FreeRTOS website and the number of downloads has been on a steep climb year on year for as long as we have been keeping statistics. There has to be a point of plateaux at some time, but now we see FreeRTOS being adopted into emerging market sectors too, so we are not there yet. We believe, with good reason, that FreeRTOS is the most widely used RTOS in its class on the planet today.
In your opinion, what is the current state of the embedded and tools industries?
It’s difficult to say something here that has not been covered ad nauseum in the press already. You don’t have to look very far to be consumed by the hype around IoT, but even if IoT only partially lives up to the hype, there is no doubt the embedded market will expand significantly – which of course has a knock on effect for the tools market too.
In fact, even if you were to take IoT out of the equation completely, the intelligence being built into products these days means the industry will grow. Barriers to entry in the hardware market are a lot lower than they used to be, especially in the ARM market, but barriers to entry in the tools market are a lot lower. Expect constant download pressure on pricing for both hardware and software, and consolidation to result, unless you have a really unique selling point.
There is also a lot of hype around the lack of standardisation in the IoT space, and it amuses me each time a new solution is launched with the promise of ‘fixing’ the fragmentation in the market – whereas in reality, while the market is still immature, each new offering seems to increase the fragmentation. I’m sure there will be some consolidation of standards at some point, but it’s not obvious yet who the winners and losers will be.
What are the main challenges for the industry in the next few years?
Again, there are lots of things I could talk about, issues that have already had too much coverage in the press, so to avoid repeating what others have already said, I will instead highlight something I feel strongly about; the tendency to dumb down the skills with which we are equipping the future generations of engineers. Writing Java and understanding Linux are important skills, but they are not specifically embedded engineering skills, yet I have seen them applied to ‘engineer’ solutions to extremely simply problems because the engineers didn’t know how else to approach the problem. I understand the need for abstraction, and fast development cycles, but to me it just seems wrong to use a relatively large piece of software just to get access to a driver, that could have otherwise just been created by itself. Then again, maybe I’m the one that is out of touch, or I’m showing my age. I wonder if lack of skills is behind the trend toward adopting larger and larger processors as solutions to problems that previously would have been solved with design ingenuity, rather than additional hardware resources.
ECLIPSE and GNU are becoming a de-facto standard. How does that benefit developers?
GCC has pros and cons for sure, the internet is awash with arguments and counter arguments for and against – but an undisputed fact is that time spent learning how to use GCC is time well spent, as the broad target support means the skills can then be applied on multiple projects, and on multiple hardware platforms.
The broad acceptance of Eclipse make the arguments for learning Eclipse very similar. Again, you can argue for and against it all you like, but the market acceptance is such that learning how to use Eclipse is time well spent as the skills can be used again and again through your career.
Put Eclipse and GCC together, as is often the case, and you have a familiar and comfortable environment from the outset, ready to start your development.
Eclipse has a couple of other benefits too. First is the much written about depth of plug-ins that are available – to add all manner of functionality. Second is the range of solutions on the market – from putting together your own Eclipse/GCC development environment, to premium Eclipse/GCC solutions such as Atollic TrueSTUDIO. For professional developers, the additional productivity that comes from a premium solution makes a lot of sense. The productivity gains come from the single installation package, stability, support, and probably most important of all, seamless integration with a range of debugging interfaces.
When I first started using Eclipse, many years ago, I got frustrated with the way it did things, yet now, when I watch new graduates try to use an IDE that is not Eclipse – they struggle because Eclipse is all they have ever used.
What are the strongest trends in RTOS and middleware onwards?
The trend toward more complex and connected applications, not to mention richer user interfaces, has ensured the market for RTOSes will grow. There is still a lot of education that needs to be done though – misconceptions about RTOSes are deep routed. For example, just the week before last somebody was telling me that if they introduced an RTOS into their design then it would burn a lot more CPU cycles. Of course the opposite is true – using an RTOS allows a completely event driven design, where CPU cycles are only used when there is actually productive processing to perform, and freeing all the CPU cycles that were previously needlessly executing state machines when the state hadn’t changed, or polling an input that has not changed.
Like a lot of mature software markets, there will be, and already has been, a trend to free and open RTOS platforms. That trend will be particularly strong in the IoT space, where the devices at the edge of the network are only a small part of the entire value chain. Historically there has been a lot of consolidation around FreeRTOS as the solution of choice, as we expect that trend to continue into the IoT space. FreeRTOS it is not only high quality, trusted and free, but it is not hindered by proprietary influence or ulterior motives, so it is also free to be a truly cross platform solution that can be used by everybody – no matter which processor they are using, or who their cloud provider is.
Riding on the back of IoT is of course security, and the need to build in security will influence the architecture of both the RTOS, and the application as a whole.
Can you mention something about your future plans?
Naturally, I can’t tell you all our future plans, but you will already see that we now have our own TCP/IP stack called FreeRTOS+TCP, and FAT file system called FreeRTOS+FAT.
Our aim is to bring the FreeRTOS value proposition to these new components too – so they will be free, fully supported, fully thread safe, and of course free from any IP infringement risks. We chose to provide these components ourselves for a number of reasons. Outside of the network or media drivers, they are not hardware specific, and it is common to use them with an RTOS. Other people’s integrations of TCP and FAT into FreeRTOS applications has long since been an issue for us, as while we are happy to provide free support for FreeRTOS, we cannot provide free support for other peoples middleware, be it free or commercial, or poorly executed integrations with FreeRTOS. Providing our own TCP and FAT integrations, with software we understand and support, therefore has huge benefits; FreeRTOS users get access to the software, pre-integrated, and we are better able to support them. Of course, the TCP/IP stack has obvious benefits in providing a uniform IoT platform too.