Skip to content

wamr Webassembly Micro Runtime ​

This guides explains how to try WAMR on NuttX.

Install WASI SDK ​

We need to be able to build WASM programs. This can be done by installing the wasi-sdk as shown in the WAMR guide.

Make sure the installation is reachable via /opt/wasi-sdk on your host, as this is expected by the build script of the WASM hello world sample below.

Building NuttX ​

We use the sim/wamr config to build WAMR with NuttX. Note that at this writing, the that CMake scripts don't work for this configuration. For now, please use the makefile build instead:

console
 cd nuttx
 tools/configure.sh sim/wamr
 make -j4
 ls -l nuttx
-rwxrwxr-x 1 yf yf 4176376 Jun 10 08:11 nuttx

This will generate a nutxx binary. Also a WASM sample is available in the folder apps/interpreters/wamr/wamr/product-mini/app-samples/hello-world folder. We build the sample as follows:

console
 cd apps/interpreters/wamr/wamr/product-mini/app-samples/hello-world
 ./build.sh
 ls -l test.wasm
-rwxrwxr-x 1 yf yf  413 Jun 10 08:18 test.wasm

The test.wasm program should be accessible from NuttX later.

Try WAMR in NSH ​

Copy the test.wasm to the folder where the nuttx program lives, then run ./nuttx to kick off NuttX and run iwasm /data/test.wasm from NSH:

console
 ./nuttx

NuttShell (NSH) NuttX-12.4.0
nsh> iwasm /data/test.wasm
Hello world!
buf ptr: 0x1460
buf: 1234
nsh>