[erlang-questions] BIF or NIF for extending Erlang on OS which can't dynamic link

Peer Stritzinger <>
Mon May 7 17:27:31 CEST 2012


On Fri, May 4, 2012 at 8:00 PM, Jared Kofron <> wrote:
> I'm curious what you are working on that you would be porting Erlang to
> RTEMS?

Its work for a customer, can't tell too much about it yet.  Its for a
small industrial control component that has the following
requirements:

* physically small + hardware cost sensitive + support for a wide area
of industrial communication protocols

This results in choice of a SoC (MPC8309 from Freescale in our case)
with only some NAND flash and limited RAM.

* Some uses have hard realtime requirements, but many have soft
realtime requirements and some dynamic memory use.

So we have the hard realtime parts running in a RTEMS thread with
higher prio than the Erlang VM's threads.

Do I have to elaborate why not to write it completely in C on this
list?  Erlang is a great choice for most of the stuff we want to do
with this platform.

Besides RTEMS and Erlang fit quite well, both are built for high
reliability (RTEMS is running on plenty of satelites and planetary
probes e.g.), RTEMS has very fast thread switching and the amount of
code run with higher prio than Erlang can be reduced to a minimum.
This should result in higher responsiveness for Erlang since it can
basically running on the bare metal with no preemption at all.

I have built larger embedded systems where Erlang is running on top of
FreeBSD talking to hardware boards running RTEMS via USB.  There I
found the collaboration of RTEMS (for the hard realtime, ultra low
latency stuff) and Erlang (for as much of the rest as possible) very
useful.

So it was a natural choice to put Erlang and RTEMS on the same CPU if
we don't have the room/"price budget" to use separate CPU's.

So far everything looks well, there will be more info about this at a
later point in time.

And the RTEMS + Erlang code/build system etc. will be published
(preferably by committing as much as possible back to the respective
projects)

Cheers,
-- Peer Stritzinger



More information about the erlang-questions mailing list