Huang Qi
f57cd2cf0c
tools: Move final wasm module to bin/wasm as elf
...
And leave all intermediate file in apps/wasm,
such as .map file, entry object etc used in
wasm module build.
Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
2023-12-06 08:29:00 -08:00
Huang Qi
f55b8face6
wamr: Add support for thumb target triple in Toolchain.defs
...
Before WAMR 1.3.0, eabihf in wamrc is `gnueabihf`, so without
this patch call wamrc will failed with target abi was `eabihf`,
we should convert the standard llvm target to wamrc required.
Both `eabihf` and `gnueabihf` supported after WAMR 1.3.0.
Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
2023-12-06 08:29:00 -08:00
Huang Qi
dec2cd9635
tools/Wasm: Decouple the wasm compilation and runtime specific AOT compilation
...
Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
2023-05-13 10:15:40 -03:00
Huang Qi
e287e4bb9e
wamr: Simplify target handling by LLVM style arch info
...
Depends on: https://github.com/apache/nuttx/pull/8928
Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
2023-05-13 10:15:40 -03:00
chao an
4f11f38c38
interpreters/wamr: add compile role of WebAssembly
...
Add compilation rules to support 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
Co-Authored-By: Huang Qi <huangqi3@xiaomi.com>
Signed-off-by: chao an <anchao@xiaomi.com>
2023-03-06 13:23:44 +02:00