AtomVM
v0.6.5
將Erlang,Elixir和其他功能性語言帶入真正的小型系統。
ATOMVM從頭開始實現了一個最小的Erlang VM,該VM支持ERLANGVM功能的一個子集,並且能夠在MCUS(例如MCUS)上運行未修改的光束二進製文件。
ATOMVM的目的是輕鬆地用於最低限度的新平台,因此在不久的將來可能會支持其他平台。
還有更多信息,包括更完整的“入門指南”,示例,詳細的構建說明以及ATOMVM Project網站上可用的聯繫信息。
不要忘記查看示例存儲庫,以幫助您開始下一個IoT項目。
請使用v0.6.x版本,主要分支是出於開發目的,並且可能不穩定。
建築所需的
文檔和覆蓋範圍:
make coverage )。 $ mkdir build
$ cd build
$ cmake ..
$ make
$ ./src/AtomVM ./examples/erlang/hello_world.avm
在構建目錄中運行測試:
$ ./tests/test-erlang
$ ./tests/test-enif
$ ./tests/test-mailbox
$ ./tests/test-structs
$ ./src/AtomVM ./tests/libs/estdlib/test_estdlib.avm
$ ./src/AtomVM ./tests/libs/eavmlib/test_eavmlib.avm
$ ./src/AtomVM ./tests/libs/alisp/test_alisp.avm
完整的構建說明可在通用Unix(Linux,MacOS,FreeBSD,Dragonfly),ESP32,STM32,Raspberry Pi Pico和Pico 2(RP2)(RP2)和Wasm(Nodejs/web)的文檔中獲得。

ATOMVM仍處於早期階段,但是它可以運行與示例和測試中可用的應用程序相似的簡單應用程序。
ATOMVM可能會以類似的消息崩潰:
Undecoded opcode: 15
Aborted (core dumped)
這基本上意味著尚未實施指令,或者已經使用了過時的版本。請確保始終使用最新版本運行ATOMVM。
該項目正在進行中,因此有幾個已知限制,可以阻止運行未修改的軟件,其中一些是:
所有這些限制都將在合理的時間內固定。
該項目是由Davide Bettio創建的,現在是由越來越多的貢獻者開發的。
歡迎任何類型的貢獻,您可以通過改進虛擬機,核心庫或文檔或向任何組織存儲庫做出貢獻來為該存儲庫做出貢獻。
該項目按照Apache 2.0許可證的條款。