I wanted to share with this group my experience with finding an operating system that "out of the box" had most of the features our product, an oxygen concentrator, needed in a small FLASH footprint with solid performance.
I am the embedded firmware developer for this project. I have had over 33 years working with embedded systems, starting out with an Intel 8051 for an infrared touch panel controller for a flat panel AC plasma display to using the latest Kinetis KE14Z ARM Cortex-M0+ microcontroller for an oxygen concentrator. In the 1980s and 90s designing code to meet the requirements of a product that used a microcontroller was manageable for a single individual. As time marched on, the requirements for a product became more challenging to meet. Some of these features are USB connectivity (MSD), File Systems (FAT32), Ethernet connectivity (TCP/IP), bootloader for field upgradeability, cryptography, and LCD support. Designing embedded code with these features and without a reliable OS today can be an overwhelming task.
My recent project had me looking for a very low cost microcontroller that could meet the growing marketing requirements of this marketing such as:
After evaluating several manufacturer's microcontrollers, the most cost effecive solution was NXP's KE14Z microcontroller. The big differentiator was FreeMASTER. FreeMASTER far surpased the closest competitor, uC/Probe in my evaluation. The next step was to find an operating system and middleware. Looking first at FreeRTOS with FreeMASTER and SDK support worked well, but was lacking in requirements 1, 2, 3 and 4. As I searched the internet, I came across a product called, uTasker, by M.J.Butcher Consulting. Studying uTasker website, www.utasker.com, and its documentation/videos, it became clear that this product could meet all the requirments "out of the box". Since the full source code is available for evaluation as well as support from the author himself, Mark Butcher, I found the only cost I had was the evaluation time. What I have found during my 4 months of development on the project:
The only commitment is that you will need to put some time into reading the documentation and watching the videos to understand how to modify uTasker for your needs. From my point of view though, this is educational time (and fun) that even if you decide not to use uTasker, you will be a better embedded software developer because of this time investment.