
AtomVM: how to run Elixir code on a 3 $ microcontroller - ProfDreamer
https://medium.com/@Bettio/atomvm-how-to-run-elixir-code-on-a-3-microcontroller-b414773498a6
======
veli_joza
Very interesting project. Few questions:

Even though flash is memory-mapped, running code from flash will still be
order of magnitude slower than executing from RAM. Speaking of which, it would
be interesting to know how much of flash is consumed by minimal example of
AtomVM.

Are interrupts supported? Can AtomVM go into deep sleep and wake by interrupt?

Erlang has it's own VM, the BEAM. How does BEAM relate to AtomVM?

From what I understood, Erlang achives it's reliability by supervising and
restarting crashed modules. Is this functionality also part of AtomVM?

~~~
Uninstall
Hello, I'm the creator of AtomVM and I'm glad for your interest.

1) On ESP32 code is usually executed from flash memory and it has some
transparent caching. I have a simple home thermostat Erlang app, that is
network connected and controls a relay according to the room temperature, and
it consumes 5088 bytes on flash memory. I would be glad to show some benchmark
soon :)

2) Interrupts are still poorly supported, there is some underway work on the
scheduler side to properly support interrupts. Deep sleep is not yet
supported.

3) AtomVM is written from scratch, no lines of code have been taken from BEAM.

4) That feature is one of the goals, right now it is not yet implemented.

If you have more questions we have #atomvm slack channel on elixir-lang slack
([https://elixir-slackin.herokuapp.com/](https://elixir-
slackin.herokuapp.com/)).

