diff --git a/README.md b/README.md index 28b41ae3a..bf10a9ddb 100644 --- a/README.md +++ b/README.md @@ -1,124 +1,9 @@ -#1.Overview -Littlevgl is an Open-source Embedded GUI Library. We definde an UI APP, and it can be running in 3 scenarios. -1. Native Linux. The App code built into Linux executables. -2. WASM VM for Different platform. WASM VM and native extension being built into Linux and Zephyr platforms. With WASM VM inside, many WASM APP can run on top of it. -3. WASM APP. This kind of binary can be run on WASM VM. -##Folder structure -├── build.sh **build script, will create build and out folder.** -├── LICENCE.txt -├── UI.JPG **UI appearence.** -├── user_guide.md **User Guide.** -### 1. vgl-native-ui-app -Littlevgl graphics app has being built into Linux application named "vgl_native_ui_app", which can directly run on Linux. -├── vgl-native-ui-app -│   ├── CMakeLists.txt -│   ├── lv_drivers **Display and input device driver sources.** -│   └── main.c **UI app logic.** -### 2. vgl-wasm-runtime -Wasm micro-runtime and littlevgl native interface built into Linux application named "littlevgl", where wasm apps can run on it. -├── vgl-wasm-runtime -│   ├── CMakeLists.txt -│   ├── src **Cantains WASM VM initialization adn native extension sources.** -│   │   ├── display_indev.h **App called methods which are implemented in WASM native.** -│   │   ├── ext-lib-export.c **WASM exported function** -│   │   ├── platform **Native method Implementation on different platform.** -│   │   │   ├── linux **Linux implementation** -│   │   │   │   ├── display_indev.c -│   │   │   │   ├── iwasm_main.c -│   │   │   │   ├── main.c -│   │   │   │   └── mouse.c -│   │   │   └── zephyr **Zephyr implementation** -│   │   │   ├── display.h -│   │   │   ├── display_ili9340_adafruit_1480.c -│   │   │   ├── display_ili9340.c -│   │   │   ├── display_ili9340.h -│   │   │   ├── display_indev.c -│   │   │   ├── LICENSE -│   │   │   ├── XPT2046.c -│   │   │   └── XPT2046.h -│   │   └── test_wasm.h -│   └── zephyr-build **Zephyr project files** -│   ├── CMakeLists.txt -│   └── prj.conf +#User Guide -###3. wasm-apps -A wasm app with littlevgl graphics. -└── wasm-apps - ├── build_wasm_app.sh **Git clone lvgl and build app.** - ├── Makefile_wasm_app **Makefile** - └── src **source code of UI app.** +##Introduction -#2.Install required SDK and libraries. -##1. 32 bit SDL(simple directmedia layer) -###a. Use apt-get -sudo apt-get install libsdl2-dev:i386 -###b. Install from source -www.libsdl.org -`./configure C_FLAGS=-m32 CXX_FLAGS=-m32 LD_FLAGS=-m32` - ` ./make` -`./sudo make install` -##2. Install EMSDK - https://emscripten.org/docs/tools_reference/emsdk.html -##3. Cmake - CMAKE version above 3.13.1. -#3.Build & Run -##1. Build and run on Linux -###a. Build +This project aims to demonstrate wasm app management and programming model of WAMR. + +##Build all binaries +Execute the build.sh script then all binaries including wasm application files would be generated in 'out' directory. `./build.sh` - All binaries are in "out", which contains "host_tool", "vgl_native_ui_app", "TestApplet1.wasm" and "vgl_wasm_runtime". -###b.Run native Linux application -`./vgl_native_ui_app` -###c.Run WASM VM Linux applicaton & install WASM APP -####1. Start vgl_wasm_runtime in server mode -`./vgl_wasm_runtime -s` -####2. Install wasm APP -`./host_tool -i TestApplet1 -f TestApplet1.wasm` -##2. Build and run on zephyr -WASM VM and native extension method can be built into zephyr, Then we can install wasm app into STM32. -###1.Build wasm into Zephyr system -####a. clone zephyr source code -`git clone https://github.com/zephyrproject-rtos/zephyr.git` -####b. copy samples - `cd zephyr/samples/` - `cp -a projects/littlevgl/vgl-wasm-runtime vgl-wasm-runtime` - `cd vgl-wasm-runtime/zephyr_build` -####c. create a link to wamr core - ` ln -s /core core` -####d. build source code -We use nucleo_f767zi, which is almost the same as nucleo_f746zg, except SRAM size in DTS. -Duplicate zephyr board support of nucleo_f746zg, then change SRAM size to 512KB. - `mkdir build && cd build` - `source ../../../../zephyr-env.sh` - `cmake -GNinja -DBOARD=nucleo_f767ZI ..` - ` ninja flash` - -###2. Test on STM32 NUCLEO_F767ZI with ILI9341 Display with XPT2046 touch. -####a. Hardware Connetions -+-------------------+-+------------------+ -|NUCLEO-F767ZI || ILI9341 Display | -+-------------------+-+------------------+ -| CN7.10 | CLK | -+-------------------+-+------------------+ -| CN7.12 | MISO | -+-------------------+-+------------------+ -| CN7.14 | MOSI | -+-------------------+-+------------------+ -| CN11.1 | CS1 for ILI9341 | -+-------------------+-+------------------+ -| CN11.2 | D/C | -+-------------------+-+------------------+ -| CN11.3 | RESET | -+-------------------+-+------------------+ -| CN9.25 | PEN interrupt | -+-------------------+-+------------------+ -| CN9.27 | CS2 for XPT2046| -+-------------------+-+------------------+ -| CN10.14 | PC UART RX | -+-------------------+-+------------------+ -| CN11.16 | PC UART RX | -+-------------------+-+------------------+ - -####b. Install wasm app to zephyr using host_tool -First connect PC and STM32 with UART. Then install use host_tool. -`./host_tool -D /dev/ttyUSB0 -i TestApplet1 -f TestApplet1.wasm` -