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许可证的条款。