
ARM mbed – An operating system for IoT devices - pjmlp
https://mbed.org/technology/os/
======
higherpurpose
Anyone else think ARM missed an opportunity to make this open source? Is the
fear that the platform would "fork" in very bad (far out) ways, real?

~~~
zwieback
Yeah, it's not really clear what they gain by keeping it closed and the
fragmentation fear seems unwarranted. If it were open source people might be
more likely to port it to non-ARM platforms but I doubt that's the main
motivation.

~~~
KaiserPro
They are aiming it at large scale rollouts. They are sort of pitching it in
the same way that Amazon does its cloud computing.

------
pinkyand
Technically ,the nice thing about this is that they use an event based model.
Your system is divided into event-manager threads which communicate with each
other using events(and of course interrupts create events). When they are
activated by an event , they do their stuff rapidly - and go to sleep. Only a
single thread is allowed at a time. There are also event priorities to manage
a case of multiple events happening at the same time, and a scheduler to
manage that.

This enables both low power systems(since both threads and scheduler are
always asleep unless there's a new event - unlike traditional rtos, where
usually the scheduler needs to wake up periodically quit often to check which
process's turn is now and give it to him).

And since threads are run to completion, you only need a single stack(instead
of stack per task), which saves a lot of ram, which is critical in those kinds
of systems, both in terms of price and in terms of sleep power(since even in
sleep you need to power the ram and the smaller the ram the better) which
usually is the biggest component in total power consumption.

------
justincormack
mbed seems to insist you use ARM's online toolchain, and appears to be very
difficult to just use with gcc or llvm in your machine. So no thanks...

~~~
noselasd
Can't you just tell it to use gcc, as described at
[http://developer.mbed.org/handbook/mbed-
tools](http://developer.mbed.org/handbook/mbed-tools) ?

~~~
justincormack
Well, see this thread for problems people encountered
[http://developer.mbed.org/forum/mbed/topic/2336/](http://developer.mbed.org/forum/mbed/topic/2336/)

------
dmritard96
Nothing inherently binding this to 2.4ghz, but it is the band for bluetooth,
wifi zigbee/thread etc. Not in love with that as the bet for much of IoT
because its pretty range constrained if you are working with power constrained
devices...For higher bandwidth applications it makes lots of sense but for
sensors and actuators where I am only moving a few bytes at a given time, I
would rather have lower power and better range... and yes, they did miss an
opportunity to make it open.

~~~
n0rm
> range constrained if you are working with power constrained devices

Could you elaborate on that? Why does the narrow frequency drain power?

~~~
freehunter
Lower frequencies offer longer range, which is nice compared to 2.4Ghz. Which
means that 2.4Ghz is also going to have more attenuation, so you need a higher
TX power draw to account for that. Basically, to get the same range, 2.4Ghz is
going to need more power than 900Mhz would, but 2.4Ghz offers better
transmission speed.

------
simpsond
I realize linux might be too heavy for many applications, but for any powered
device, let's please make linux the default.

~~~
pinkyand
Linux also means higher hardware costs and bigger size and worse peripheral
selection. Those are critical parameters in this market.

~~~
fragmede
> higher hardware costs

Yes.

> bigger size

If you're comparing something like a bare ATTiny to a Raspberry Pi, sure, but
the size difference between a standard Arduino and the Pi isn't great.

> worse peripheral selection

Um, compared to what?

mbed, a new operating system, will have to have drivers written for everything
it supports - which is likely much shorter list than for Linux.

------
angersock
...can we just have BEAM-on-Cortex?

