You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+29-2Lines changed: 29 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -19,8 +19,14 @@ The example programs in this collection require the following:
19
19
* Elixir applications:
20
20
*[Elixir](https://elixir-lang.org) Version 1.13 (version compatible with OTP version selected above)
21
21
22
+
See the [AtomVM Release Notes](https://www.atomvm.net/doc/master/release-notes.html) for information about supported versions of the above software.
23
+
22
24
For instructions about how to install these requirements, consult your local operating system documentation and package management system.
23
25
26
+
The above tools make use of plugins designed specifically to simply the development and deployment of applications on to supported platforms. For more information about these plugins, please refer to the [AtomVM Tooling](https://www.atomvm.net/doc/master/atomvm-tooling.html) documentation.
27
+
28
+
These instructions assume you have already deployed the AtomVM virtual machine on to the device on which you are running. For instructions about how to install the AtomVM virtual machine onto devices, see the AtomVM [Getting Started Guide](https://www.atomvm.net/doc/master/getting-started-guide.html).
29
+
24
30
### ESP32 Requirements
25
31
26
32
In order to flash and run these programs on an ESP32 device, you will need, in addition:
@@ -33,11 +39,32 @@ In order to flash and run these programs on an ESP32 device, you will need, in a
33
39
* Some example applications require the presence of a WiFi Access Point (AP), to which the ESP32 device can connect.
34
40
* Some example applications require either an existing WiFi Access Point (AP) or that your personal computer be capable of connecting to the ESP32 acting as a WiFi Access Point (AP).
35
41
36
-
> Note. AtomVM is currently qualified only on the [ESP32](https://www.espressif.com/en/products/socs/esp32) SoC. Support for the ESP32-C and ESP32-S* SoCs is TBD.
42
+
> For information about supported ESP32 SoCs, see the AtomVM [Release Notes](https://www.atomvm.net/doc/master/release-notes.html).
37
43
38
44
### STM32 Requirements
39
45
40
-
TODO
46
+
In order to flash and run these programs on an STM32 device, you will need, in addition:
47
+
48
+
* An STM32 device with support for USB connectivity via UART, such as the [STMicroelectronics](https://www.st.com)[Nucleo-F429ZI](https://www.st.com/en/evaluation-tools/nucleo-f429zi.html). (Some STM32 boards require an external adapter for UART connectivity)
49
+
* Installation of the release of the AtomVM virtual machine image on the STM32 device. For information about how to install a release of the AtomVM virtual machine image on an STM32 device, see the AtomVM [Getting Started Guide](https://doc.atomvm.net/getting-started-guide.html) documentation.
50
+
* A USB cable to connect to UART and.or JTAG. (The [STM32F4Discovery](https://www.st.com/en/evaluation-tools/stm32f4discovery.html) needs two cables -- one for built in JTAG, and one for external UART, where as on the [Nucleo-F429ZI](https://www.st.com/en/evaluation-tools/nucleo-f429zi.html) board both UART and JTAG are presented on the one on-board usb connection).
51
+
* The [st-flash](https://github.com/texane/stlink) flashing tool.
52
+
* To use JTAG for flashing and console output debugging, you will need a [st-link v2](https://www.st.com/en/development-tools/st-link-v2.html) or [st-link v3](https://www.st.com/en/development-tools/stlink-v3set.html) device (typically already included on Nucleo and Discovery boards).
53
+
* (Recommended) A serial console program, such as [`minicom`](https://en.wikipedia.org/wiki/Minicom).
54
+
55
+
> For information about supported STM32 development boards, see the AtomVM [Release Notes](https://www.atomvm.net/doc/master/release-notes.html).
56
+
57
+
### Raspberry Pico Requirements
58
+
59
+
In order to flash and run these programs on a Raspberry Pico or Raspberry Pico W device, you will need, in addition:
60
+
61
+
* A [Raspberry Pico](https://www.raspberrypi.com/documentation/microcontrollers/raspberry-pi-pico.html#raspberry-pi-pico-and-pico-h) or [Raspberry Pico W](https://www.raspberrypi.com/documentation/microcontrollers/raspberry-pi-pico.html#raspberry-pi-pico-w-and-pico-wh) device with support for USB connectivity.
62
+
* Installation of the release of the AtomVM virtual machine image on the Raspberry Pico device. For information about how to install a release of the AtomVM virtual machine image on an ESP32 device, see the AtomVM [Getting Started Guide](https://doc.atomvm.net/getting-started-guide.html) documentation.
63
+
* A USB cable to connect your Raspberry Pico device.
64
+
* (Recommended) A serial console program, such as [`minicom`](https://en.wikipedia.org/wiki/Minicom).
65
+
* Some example applications require the presence of a WiFi Access Point (AP), to which the Raspberry Pico W device can connect. Note that these examples are only supported on the Raspberry Pico W.
66
+
67
+
> For information about supported Raspberry Pico devices, see the AtomVM [Release Notes](https://www.atomvm.net/doc/master/release-notes.html).
To build and run an example in this directory, change your working directory to the corresponding example program, and execute the generic instructions below.
To build and run an example in this directory, change your working directory to the corresponding example program, and execute the generic instructions below.
32
32
33
33
## Generic Instructions
34
34
35
35
The following generic instructions apply to the Erlang examples in this repository. Special notes about building and running the example programs that deviate from these instructions are noted in the README file for the particular example program.
36
36
37
+
These instructions make use of the [`atomvm_rebar3_plugin`](https://atomvm.github.io/atomvm_rebar3_plugin). For more information about AtomVM tooling, please see the [AtomVM Tooling](https://www.atomvm.net/doc/master/atomvm-tooling.html) documentation.
38
+
37
39
### Building
38
40
39
41
To build and package this application into an AtomVM AVM file, use the `packbeam` target:
40
42
41
-
shell$ rebar3 packbeam -p -f -i
43
+
shell$ rebar3 atomvm packbeam
42
44
43
-
This target will create the `read_priv.avm` file in the `./_build/default/lib/` directory.
45
+
This target will create the `<application>.avm` file in the `./_build/default/lib/` directory, where `<application>` is the name of the example application.
44
46
45
47
### Running on the ESP32 platform
46
48
@@ -50,7 +52,7 @@ To run this application on the ESP32 platform, you must flash the application to
50
52
51
53
To flash this application to your ESP32 device, issue the `esp32_flash` target. Use the `--port` option to specify the port to which your device is connected:
@@ -60,18 +62,50 @@ Use a serial console program, such as `minicom`, to attach to the device over US
60
62
61
63
### Running on the STM32 platform
62
64
63
-
TODO
65
+
To run this application on the STM32 platform, you must flash the application to the device attached to your computer via USB. You may then optionally monitor the program via a serial console program to view any data output to the console.
66
+
67
+
#### Flashing onto an STM32 Device
68
+
69
+
The STM32 platform requires that the core AtomVM library be included in the application you are targeting for the device. For information about how to obtain this library, see the [AtomVM Tooling](https://www.atomvm.net/doc/master/atomvm-tooling.html) documentation.
70
+
71
+
Once you have obtained this library, you must use the `packeam` task to create the AVM file to deploy to your device. Specify the path to the AtomVM core library using the `-e` option, e.g.,
To flash this application to your STM32 device, issue the `stm32_flash` target. Use the `--port` option to specify the port to which your device is connected:
76
+
77
+
shell$ rebar3 atomvm stm32_flash
78
+
79
+
#### Monitoring an STM32 Device
80
+
81
+
Use a serial console program, such as `minicom`, to attach to the device over USB:
82
+
83
+
shell$ minicom -D /dev/ttyUSB0
64
84
65
85
### Running on the Raspberry Pico platform
66
86
67
-
TODO
87
+
To run this application on the Raspberry Pico platform, you must flash the application to the device attached to your computer via USB. You may then optionally monitor the program via a serial console program to view any data output to the console.
88
+
89
+
#### Flashing onto a Raspberry Pico Device
90
+
91
+
To flash this application to your Pico device, issue the `pico_flash` target:
92
+
93
+
shell$ rebar3 atomvm pico_flash
94
+
95
+
#### Monitoring a Raspberry Pico Device
96
+
97
+
Use a serial console program, such as `minicom`, to attach to the device over USB:
98
+
99
+
shell$ minicom -D /dev/ttyACM0
100
+
101
+
> Note. After restart, the Pico device should show up as a device on Linux development hosts under `/dev/ttyACM0`. On MacOS hosts, the Pico device should show up under a device name that matches `/dev/cu.usbmodem14*`.
68
102
69
103
### Running on Generic Unix platforms
70
104
71
-
To run this application on a generic UNIX platform, supply the path to the generated AVM file, together with the AtomVM core library
105
+
To run this application on a generic UNIX platform, supply the path to the generated AVM file to the `atomvm` command:
where `<example-program>` is the name of the example program.
76
110
77
-
> Note. Currently, you must build the AtomVM virtual machine from source, in order to run AtomVM applications on the generic UNIX platform.
111
+
> Note. See the AtomVM [Getting Started Guide](https://www.atomvm.net/doc/master/getting-started-guide.html) for information about how to install AtomVM on the generic UNIX platform.
Copy file name to clipboardExpand all lines: erlang/arepl_example/README.md
+1-9Lines changed: 1 addition & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,19 +6,11 @@ The `arepl_example` AtomVM application demonstrates the use of the `arepl` LISP
6
6
7
7
For more information about programming on the AtomVM platform, see the [AtomVM Programmers Guide](https://doc.atomvm.net/programmers-guide.html).
8
8
9
-
## Supported Platforms
10
-
11
-
| Platform | Supported |
12
-
|----------|-----------|
13
-
|`esp32`| ✅ |
14
-
|`stm32`| ❌ |
15
-
|`generic_unix`| ✅ |
16
-
17
9
## Build and Run Instructions
18
10
19
11
For general information about building and executing Erlang AtomVM example programs, see the Erlang example program [README](../README.md).
20
12
21
-
> **IMPORTANT** If you are running this example program on an ESP32 device, you must first copy the `src/config.erl-template` file to set `src/config.erl` and edit the WiFi Access Point SSID and PSK to which the ESP32 device is to connect before building this application:
13
+
> **IMPORTANT** If you are running this example program on a device that supports WiFi (e.g., the ESP32 or Pico W), you must first copy the `src/config.erl-template` file to set `src/config.erl` and edit the WiFi Access Point SSID and PSK to which the ESP32 device is to connect before building this application:
0 commit comments