Hello! Today we have another installment in our Guest Blogger series. Mentor Embedded’s Senior Product Manager for the Nucleus RTOS product line joins us to discuss memory footprint reduction in IoT devices. Contact information for Andrew is at the bottom of the blog post. Enjoy.
50 billion devices! That is the number of Internet of Things (IoT) devices analysts project over the next few years. This is a staggering number; and yet, it may be conservative as the “Internet of Things” is now being transformed into the “Internet of Everything.” It’s not the sheer number of devices that causes one to pause, it is the fact that each device has to be connected. One could think of IoT as billions of connected smart devices such as actuators or monitors using input from pressure meters, gyros, proximity sensors, GPS, and accelerometers. Each IoT device is essentially a distributed computing node capable of making decisions on their own, or based on higher level decision making. The fact is, IoT devices are complex embedded systems requiring rich networking middleware, wireless stacks, security software and more, to support machine-to-machine communication and collaboration.
The resources on these devices are limited… many will be based on low cost ARM processors with tight memory. It common for ARM based microcontrollers to have less than 1 MB of flash. For example: Texas Instruments Tiva TM4C offers 256KB, and both the Freescale Kinetis K50 and STMicro 32F40 offer 512KB. With an emphasis on cost, IoT developers will be challenged to squeeze more and more capability into these low cost systems to create smart devices. After all, isn’t the point of building dispersed networks to enable smart devices on the edge to make decisions?
With the need for greater functionality, selecting an embedded OS platform that is scalable is becoming an imperative. Long before IoT or IoE came on scene, optimizing the footprint of the Nucleus RTOS and middleware has been a priority. Architecting the Nucleus RTOS to allow software developers to pull in only the kernel and middleware components is seen as a key requirement for embedded systems, and a first step towards footprint reduction. The fact that the Nucleus kernel can be scaled to under 4KBs is compelling. However for IoT devices, footprint numbers should be meaningful by including the networking stack, security, and wireless connectivity. Typical configurations for Nucleus are in the 100KB range… well that is downright impressive. Not all of the 50B IoT devices will need an embedded operating system.. but for the ones that do, Nucleus RTOS is a very good fit.