If it hasn’t happened to you already, it’s just a matter of time before you come to the conclusion that an idea you’ve been working is worth taking to the next level. You might want to bring an idea to market, or simply lay the groundwork for further exploration. One of the questions you’ll need to answer is which software framework to start from.
Making a solid decision for your MCU or wireless MCU project can make the difference between coming in on-time and on-budget, or putting your investment at risk. Here are three things to keep in mind.
What is a Software Framework?
What you really want to write is the code that runs your special sauce, the code that differentiates your product from the rest, which is where an operating system can be useful. This makes it possible to rely on other pieces of software, like drivers for the ADC or a file system stack for the SD-card. These pieces of software are generally referred to as software components. The operating system defines the components interact with each other. Choose wisely and as you add more components to the software, they’ll continue to work well together.
The scheduler is another important component because it’s what allocates resources and processing time for different tasks that might be competing for the same resources. In general, there are two ways a scheduler can work, and this is where the ‘RT’ in real-time operating system (RTOS) comes in. Real-time means there is a consistent time that a certain task will take to execute. Let’s say you get a radio package that you need to take care of no matter what your device is currently doing. An RTOS kernel will then leave the other tasks it is doing and complete this high-priority task instead.
Commercial or Open Source?
Once you’ve landed on whether or not an RTOS is needed, you’ll start to assemble the software requirements. Should you simply download the latest FreeRTOS example for your preferred MCU and continue to download open-source software to plug into it or go to a commercial vendor that has the software you need and acquire the full portfolio?
This is where total cost of ownership (TCO) comes into play. The TCO is not only the monetary value you pay for software but includes the work hours spent searching for solutions, assembling the different components, integrating the different components into your project as well as development, testing, and production. Naturally, the TCO is generally lower with a commercial solution than a custom-built solution. But commercial solutions do come with an initial cost.
What are the Choices?
Frameworks like mbed and microPython are a good way of getting started if you want to get down to device development without installing a single program. However, if you’re going to create bigger deployments, a pure RTOS would be a better option. Non-commercial solutions like FreeRTOS or RIOT have the edge if it’s easier for your company to do the software investment using work hours rather than money.
If the up-front investment is manageable, commercial solutions like Segger, Express Logic, and Micrium would greatly reduce your software development risk and time-to-market.
For more information, read the whitepaper, “Choosing the Right Software Framework."