sim/wamr: add example of WAMR(WebAssembly Micro Runtime)
Added compilation rules to support the construction of WebAssembly(WASM/WAMR): 1. Compile Toolchain 1> Download WASI sdk and export the WASI_SDK_PATH path: $ wget https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-19/wasi-sdk-19.0-linux.tar.gz $ tar xf wasi-sdk-19.0-linux.tar.gz Put wasi-sdk-19.0 to your host WASI_SDK_PATH environment variable, like: $ export WASI_SDK_PATH=`pwd`/wasi-sdk-19.0 2> Download Wamr "wamrc" AOT compiler and export to the PATH: $ mkdir wamrc $ wget https://github.com/bytecodealliance/wasm-micro-runtime/releases/download/WAMR-1.1.2/wamrc-1.1.2-x86_64-ubuntu-20.04.tar.gz $ tar xf wamrc-1.1.2-x86_64-ubuntu-20.04.tar.gz $ export PATH=$PATH:$PWD 2. Configuring and running 1> Configuring sim/wamr and compile: nuttx$ ./tools/configure.sh sim/wamr nuttx$ make ... Wamrc Generate AoT: /home/archer/code/nuttx/n5/apps/wasm/hello.aot Wamrc Generate AoT: /home/archer/code/nuttx/n5/apps/wasm/coremark.aot LD: nuttx 2> Copy the generated wasm file(Interpreter/AoT) nuttx$ cp ../apps/wasm/hello.aot . nuttx$ cp ../apps/wasm/hello.wasm . nuttx$ cp ../apps/wasm/coremark.wasm . 3> Run iwasm nuttx$ ./nuttx NuttShell (NSH) NuttX-10.4.0 nsh> iwasm /data/hello.wasm Hello, World!! nsh> iwasm /data/hello.aot Hello, World!! nsh> iwasm /data/coremark.wasm 2K performance run parameters for coremark. CoreMark Size : 666 Total ticks : 12000 Total time (secs): 12.000000 Iterations/Sec : 5.000000 Iterations : 60 Compiler version : Clang 15.0.7 Compiler flags : Using NuttX compilation options Memory location : Defined by the NuttX configuration seedcrc : 0xe9f5 [0]crclist : 0xe714 [0]crcmatrix : 0x1fd7 [0]crcstate : 0x8e3a [0]crcfinal : 0xa14c Correct operation validated. See README.md for run and reporting rules. CoreMark 1.0 : 5.000000 / Clang 15.0.7 Using NuttX compilation options / Defined by the NuttX configuration Signed-off-by: chao an <anchao@xiaomi.com>
This commit is contained in:
parent
92b2f1bd3d
commit
b01b93cb54
@ -1372,3 +1372,66 @@ vncserver
|
||||
vpnkit
|
||||
|
||||
This is a configuration with VPNKit support. See NETWORK-VPNKIT.txt.
|
||||
|
||||
wamr
|
||||
|
||||
This is a configuration for WebAssembly sample.
|
||||
|
||||
1. Compile Toolchain
|
||||
|
||||
1> Download WASI sdk and export the WASI_SDK_PATH path:
|
||||
|
||||
$ wget https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-19/wasi-sdk-19.0-linux.tar.gz
|
||||
$ tar xf wasi-sdk-19.0-linux.tar.gz
|
||||
Put wasi-sdk-19.0 to your host WASI_SDK_PATH environment variable, like:
|
||||
$ export WASI_SDK_PATH=`pwd`/wasi-sdk-19.0
|
||||
|
||||
2> Download Wamr "wamrc" AOT compiler and export to the PATH:
|
||||
|
||||
$ mkdir wamrc
|
||||
$ wget https://github.com/bytecodealliance/wasm-micro-runtime/releases/download/WAMR-1.1.2/wamrc-1.1.2-x86_64-ubuntu-20.04.tar.gz
|
||||
$ tar xf wamrc-1.1.2-x86_64-ubuntu-20.04.tar.gz
|
||||
$ export PATH=$PATH:$PWD
|
||||
|
||||
2. Configuring and running
|
||||
|
||||
1> Configuring sim/wamr and compile:
|
||||
|
||||
nuttx$ ./tools/configure.sh sim/wamr
|
||||
nuttx$ make
|
||||
...
|
||||
Wamrc Generate AoT: /home/archer/code/nuttx/n5/apps/wasm/hello.aot
|
||||
Wamrc Generate AoT: /home/archer/code/nuttx/n5/apps/wasm/coremark.aot
|
||||
LD: nuttx
|
||||
|
||||
2> Copy the generated wasm file(Interpreter/AoT)
|
||||
|
||||
nuttx$ cp ../apps/wasm/hello.aot .
|
||||
nuttx$ cp ../apps/wasm/hello.wasm .
|
||||
nuttx$ cp ../apps/wasm/coremark.wasm .
|
||||
|
||||
3> Run iwasm
|
||||
|
||||
nuttx$ ./nuttx
|
||||
NuttShell (NSH) NuttX-10.4.0
|
||||
nsh> iwasm /data/hello.wasm
|
||||
Hello, World!!
|
||||
nsh> iwasm /data/hello.aot
|
||||
Hello, World!!
|
||||
nsh> iwasm /data/coremark.wasm
|
||||
2K performance run parameters for coremark.
|
||||
CoreMark Size : 666
|
||||
Total ticks : 12000
|
||||
Total time (secs): 12.000000
|
||||
Iterations/Sec : 5.000000
|
||||
Iterations : 60
|
||||
Compiler version : Clang 15.0.7
|
||||
Compiler flags : Using NuttX compilation options
|
||||
Memory location : Defined by the NuttX configuration
|
||||
seedcrc : 0xe9f5
|
||||
[0]crclist : 0xe714
|
||||
[0]crcmatrix : 0x1fd7
|
||||
[0]crcstate : 0x8e3a
|
||||
[0]crcfinal : 0xa14c
|
||||
Correct operation validated. See README.md for run and reporting rules.
|
||||
CoreMark 1.0 : 5.000000 / Clang 15.0.7 Using NuttX compilation options / Defined by the NuttX configuration
|
||||
|
91
boards/sim/sim/sim/configs/wamr/defconfig
Normal file
91
boards/sim/sim/sim/configs/wamr/defconfig
Normal file
@ -0,0 +1,91 @@
|
||||
#
|
||||
# This file is autogenerated: PLEASE DO NOT EDIT IT.
|
||||
#
|
||||
# You can use "make menuconfig" to make any modifications to the installed .config file.
|
||||
# You can then do "make savedefconfig" to generate a new defconfig file that includes your
|
||||
# modifications.
|
||||
#
|
||||
# CONFIG_NSH_CMDOPT_HEXDUMP is not set
|
||||
CONFIG_ALLOW_BSD_COMPONENTS=y
|
||||
CONFIG_ALLSYMS=y
|
||||
CONFIG_ARCH="sim"
|
||||
CONFIG_ARCH_BOARD="sim"
|
||||
CONFIG_ARCH_BOARD_SIM=y
|
||||
CONFIG_ARCH_CHIP="sim"
|
||||
CONFIG_ARCH_SIM=y
|
||||
CONFIG_BENCHMARK_COREMARK=y
|
||||
CONFIG_BOARDCTL_APP_SYMTAB=y
|
||||
CONFIG_BOARDCTL_POWEROFF=y
|
||||
CONFIG_BOARD_LOOPSPERMSEC=0
|
||||
CONFIG_BOOT_RUNFROMEXTSRAM=y
|
||||
CONFIG_BUILTIN=y
|
||||
CONFIG_DEBUG_SYMBOLS=y
|
||||
CONFIG_DEV_GPIO=y
|
||||
CONFIG_DEV_LOOP=y
|
||||
CONFIG_DEV_ZERO=y
|
||||
CONFIG_EXAMPLES_GPIO=y
|
||||
CONFIG_EXAMPLES_HELLO=y
|
||||
CONFIG_FSUTILS_PASSWD=y
|
||||
CONFIG_FSUTILS_PASSWD_READONLY=y
|
||||
CONFIG_FS_BINFS=y
|
||||
CONFIG_FS_FAT=y
|
||||
CONFIG_FS_HOSTFS=y
|
||||
CONFIG_FS_PROCFS=y
|
||||
CONFIG_FS_RAMMAP=y
|
||||
CONFIG_FS_ROMFS=y
|
||||
CONFIG_GPIO_LOWER_HALF=y
|
||||
CONFIG_IDLETHREAD_STACKSIZE=4096
|
||||
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
||||
CONFIG_INTERPRETERS_WAMR=y
|
||||
CONFIG_INTERPRETERS_WAMR_AOT=y
|
||||
CONFIG_INTERPRETERS_WAMR_BULK_MEMORY=y
|
||||
CONFIG_INTERPRETERS_WAMR_CLASSIC=y
|
||||
CONFIG_INTERPRETERS_WAMR_LIBC_BUILTIN=y
|
||||
CONFIG_INTERPRETERS_WAMR_LIBC_WASI=y
|
||||
CONFIG_INTERPRETERS_WAMR_LIB_PTHREAD=y
|
||||
CONFIG_INTERPRETERS_WAMR_LOG=y
|
||||
CONFIG_INTERPRETERS_WAMR_THREAD_MGR=y
|
||||
CONFIG_INTERPRETERS_WAMR_VERSION="9f0c4b63ac21c975aee7aae30236e306c8e49d13"
|
||||
CONFIG_IOB_NBUFFERS=196
|
||||
CONFIG_IOEXPANDER=y
|
||||
CONFIG_IOEXPANDER_DUMMY=y
|
||||
CONFIG_LIBC_DLFCN=y
|
||||
CONFIG_LIBC_ENVPATH=y
|
||||
CONFIG_LIBC_EXECFUNCS=y
|
||||
CONFIG_LIBC_FLOATINGPOINT=y
|
||||
CONFIG_LIBC_LOCALE=y
|
||||
CONFIG_LIBC_LOCALE_CATALOG=y
|
||||
CONFIG_LIBC_LOCALE_GETTEXT=y
|
||||
CONFIG_LIBC_MAX_EXITFUNS=1
|
||||
CONFIG_LIBC_NUMBERED_ARGS=y
|
||||
CONFIG_LIBM=y
|
||||
CONFIG_MM_IOB=y
|
||||
CONFIG_NET=y
|
||||
CONFIG_NET_BINDTODEVICE=y
|
||||
CONFIG_NET_SOCKOPTS=y
|
||||
CONFIG_NET_TUN=y
|
||||
CONFIG_NSH_ARCHINIT=y
|
||||
CONFIG_NSH_ARCHROMFS=y
|
||||
CONFIG_NSH_BUILTIN_APPS=y
|
||||
CONFIG_NSH_FATDEVNO=2
|
||||
CONFIG_NSH_FILE_APPS=y
|
||||
CONFIG_NSH_READLINE=y
|
||||
CONFIG_NSH_ROMFSDEVNO=1
|
||||
CONFIG_NSH_ROMFSETC=y
|
||||
CONFIG_PATH_INITIAL="/bin"
|
||||
CONFIG_POSIX_SPAWN_PROXY_STACKSIZE=2048
|
||||
CONFIG_PSEUDOFS_ATTRIBUTES=y
|
||||
CONFIG_PSEUDOFS_SOFTLINKS=y
|
||||
CONFIG_READLINE_CMD_HISTORY=y
|
||||
CONFIG_READLINE_TABCOMPLETION=y
|
||||
CONFIG_SCHED_BACKTRACE=y
|
||||
CONFIG_SCHED_HAVE_PARENT=y
|
||||
CONFIG_SCHED_WAITPID=y
|
||||
CONFIG_SIM_HOSTFS=y
|
||||
CONFIG_SIM_WALLTIME_SIGNAL=y
|
||||
CONFIG_START_MONTH=6
|
||||
CONFIG_START_YEAR=2008
|
||||
CONFIG_SYSTEM_DUMPSTACK=y
|
||||
CONFIG_SYSTEM_NSH=y
|
||||
CONFIG_TLS_NELEM=8
|
||||
CONFIG_TLS_TASK_NELEM=10
|
@ -17,3 +17,9 @@
|
||||
* under the License.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
|
||||
#ifdef CONFIG_FS_HOSTFS
|
||||
mount -t hostfs -o fs=. /data
|
||||
#endif
|
||||
|
@ -29,3 +29,6 @@
|
||||
-Darwin,sim:nx11
|
||||
-Darwin,sim:nxlines
|
||||
-Darwin,sim:nxwm
|
||||
|
||||
# Skip WebAssembly Micro Runtime
|
||||
-Darwin,sim:wamr
|
||||
|
Loading…
Reference in New Issue
Block a user