Very cool, I was just wondering as I use Erlang for a lot of process control type <div>projects.  A lot of folks in my field use RTEMS, so I thought there may be some</div><div>crossover.  Looking forward to hearing about your results!</div>
<div><br></div><div>JK<br><br><div class="gmail_quote">On Mon, May 7, 2012 at 8:27 AM, Peer Stritzinger <span dir="ltr"><<a href="mailto:peerst@gmail.com" target="_blank">peerst@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">On Fri, May 4, 2012 at 8:00 PM, Jared Kofron <<a href="mailto:jared.kofron@gmail.com">jared.kofron@gmail.com</a>> wrote:<br>
> I'm curious what you are working on that you would be porting Erlang to<br>
> RTEMS?<br>
<br>
</div>Its work for a customer, can't tell too much about it yet.  Its for a<br>
small industrial control component that has the following<br>
requirements:<br>
<br>
* physically small + hardware cost sensitive + support for a wide area<br>
of industrial communication protocols<br>
<br>
This results in choice of a SoC (MPC8309 from Freescale in our case)<br>
with only some NAND flash and limited RAM.<br>
<br>
* Some uses have hard realtime requirements, but many have soft<br>
realtime requirements and some dynamic memory use.<br>
<br>
So we have the hard realtime parts running in a RTEMS thread with<br>
higher prio than the Erlang VM's threads.<br>
<br>
Do I have to elaborate why not to write it completely in C on this<br>
list?  Erlang is a great choice for most of the stuff we want to do<br>
with this platform.<br>
<br>
Besides RTEMS and Erlang fit quite well, both are built for high<br>
reliability (RTEMS is running on plenty of satelites and planetary<br>
probes e.g.), RTEMS has very fast thread switching and the amount of<br>
code run with higher prio than Erlang can be reduced to a minimum.<br>
This should result in higher responsiveness for Erlang since it can<br>
basically running on the bare metal with no preemption at all.<br>
<br>
I have built larger embedded systems where Erlang is running on top of<br>
FreeBSD talking to hardware boards running RTEMS via USB.  There I<br>
found the collaboration of RTEMS (for the hard realtime, ultra low<br>
latency stuff) and Erlang (for as much of the rest as possible) very<br>
useful.<br>
<br>
So it was a natural choice to put Erlang and RTEMS on the same CPU if<br>
we don't have the room/"price budget" to use separate CPU's.<br>
<br>
So far everything looks well, there will be more info about this at a<br>
later point in time.<br>
<br>
And the RTEMS + Erlang code/build system etc. will be published<br>
(preferably by committing as much as possible back to the respective<br>
projects)<br>
<br>
Cheers,<br>
-- Peer Stritzinger<br>
</blockquote></div><br></div>