top | item 18551753

(no title)

veli_joza | 7 years ago

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?

discuss

order

Uninstall|7 years ago

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/).