Bringt Erlang, Elixir und andere funktionale Sprachen in wirklich kleine Systeme.
Atomvm implementiert von Grund auf eine minimale Erlang -VM, die eine Untergruppe von Erlangvm -Funktionen unterstützt und in der Lage ist, nicht modifizierte Strahlbinärdateien auf wirklich kleinen Systemen wie MCUs auszuführen.
Atomvm zielt darauf ab, mit einem Mindestaufwand für neue Plattformen leicht tragbar zu sein. Daher können in naher Zukunft zusätzliche Plattformen unterstützt werden.
Es finden Sie viel mehr Informationen, einschließlich eines vollständigeren "Erste -Start -Leitfadens", Beispielen, detaillierten Build -Anweisungen und Kontaktinformationen, die auf der ATOMVM -Projektwebsite verfügbar sind.
Vergessen Sie nicht, das Beispiele -Repository zu überprüfen, um Ihnen bei Ihrem nächsten IoT -Projekt zu starten.
Bitte verwenden Sie V0.6.x -Veröffentlichungen, der Hauptzweig dient zu Entwicklungszwecken und kann instabil sein.
Für den Bau erforderlich:
Dokumentation und Berichterstattung:
make coverage ). $ mkdir build
$ cd build
$ cmake ..
$ make
$ ./src/AtomVM ./examples/erlang/hello_world.avm
Führen Sie Tests innerhalb des Build -Verzeichnisses mit:
$ ./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
Komplette Build -Anweisungen finden Sie in der Dokumentation für generische Unix (Linux, MacOS, FreeBSD, Dragonfly), ESP32, STM32, Raspberry Pi Pico und Pico 2 (RP2) und WASM (NodeJS/Web).

Atomvm befindet sich noch in den frühen Stadien, kann jedoch einfache Anwendungen ausführen, die denen in Beispielen und Tests ähneln.
Atomvm kann mit einer ähnlichen Nachricht abstürzen:
Undecoded opcode: 15
Aborted (core dumped)
Dies bedeutet im Grunde, dass noch keine Anweisung implementiert wurde oder dass eine veraltete Version verwendet wurde. Bitte vergewissern Sie sich, dass Sie Atomvm immer mit der neuesten Version ausführen.
Dieses Projekt ist in Arbeit, daher gibt es einige bekannte Einschränkungen, die verhindern, dass unmodifizierte Software ausgeführt wird. Einige davon sind:
Alle diese Einschränkungen werden in angemessener Zeit festgelegt.
Dieses Projekt wurde von Davide Bettio erstellt und wird nun aus einer wachsenden Anzahl von Mitwirkenden entwickelt.
Jede Art von Beitrag ist willkommen. Sie können entweder zu diesem Repository beitragen, indem Sie die virtuelle Maschine, die Kernbibliotheken oder die Dokumentation verbessern oder zu einer der Organisationsrepositorys beitragen.
Dieses Projekt steht unter den Bestimmungen der Apache 2.0 -Lizenz.