And they already habe AWS IoT support in their SDK.
I'm curious if there are commercial deployments on these types of IoT platforms? Last time I looked, it all seemed like devkits and examples and such. One project I was following - mbed from ARM - it is quite unclear if it ever made it beyond hobbyist/prototyping usage.
Agreed, a market survey of some sort would be helpful.
The usual reason for using an RTOS on small embedded controllers is that a full OS is way too big to fit on such small CPUs (eg. 64K of RAM and 256K of FLASH is common). FreeRTOS is tiny - it only uses a few KB of FLASH. Non real time OSes also don't provide the timing guarantees that are often required in those kinds of applications.
Valid point, but I’d have to disagree with you here. My experience as to why RTOS are chosen for small embedded micros is either a) some hard real time requirement is a must, eg motor control. You’re right that a non real time OS won’t provide that, but a blocking super loop baremetal application with round-robin task queueing may not either, depending on what’s in the queue b) the source of baremetal super-loop applications gets too jumbled as requirements grow and/or they require some multi-tasking mechanism for performance reasons. RTOS provide a multi-tasking mechanism.
Not having to worry about a more complex OS burping, leaking, or otherwise failing on you. As one poster on the Arduino forums explained it to me once, "you never know when Linux is going to nip off for a cup of tea and interrupt your program with some system overhead tasks." You are going to get your n cycles per second, every second.
This is a common misconception about RTOSes, or at least needs to be further qualified with soft real time vs hard real time OSes. RTOSes provide schedulers and multitasking mechanisms for context switching between tasks. Tasks can be assigned priorities. A higher priority task can pre-empt a lower priority task (depending on the RTOS’ scheduler implementation). In that case, you may never get your cycles, or at least not deterministically. tl;dr, depends on the scheduler implementation.
My money is on Linux based RTOS platforms. It's a bit of a surprise that Amazon has backed a non-Linux horse in this race.
This is a common sentiment and I have a lot to say on the topic, so I'll try to keep it brief: - You want to keep manufacturing costs low so you can make more money. - Running Linux requires a relatively large CPU with an MMU and a lot of RAM and Flash. This adds significant cost -- $5-$20 per unit. - Some devices do enough local processing that they have this hardware anyway (routers, streaming TV widgets, smartphon…
Don’t forget power consumption - this is also a huge factor in the down-selection process for computing hardware. This is in addition to the others you mentioned, sometimes referred to as SWaP-C (Size, weight, power and cost).
I would say mbed is more like library ecosystem for ARM devices than OS.
FreeRTOS is just a tiny microkernel that you can easily adapt it to any device.