From ab7f1f669aa349bb6a752d9d6f74182ed7f35a84 Mon Sep 17 00:00:00 2001 From: doinkythederp Date: Mon, 18 Nov 2024 09:58:11 -0800 Subject: [PATCH] docs: add pipeline documentation --- README.md | 8 ++-- docs/pipeline.md | 98 +++++++++++++++++++++++++++++++++++++++++++++++ lib.bin | Bin 12 -> 0 bytes slot0.bin | Bin 75287 -> 0 bytes slot0_lib.bin | Bin 32 -> 0 bytes 5 files changed, 103 insertions(+), 3 deletions(-) create mode 100644 docs/pipeline.md delete mode 100644 lib.bin delete mode 100644 slot0.bin delete mode 100644 slot0_lib.bin diff --git a/README.md b/README.md index 4c31407..bbd45b6 100644 --- a/README.md +++ b/README.md @@ -10,15 +10,17 @@ Hydrozoa Runtime is the behind-the-scenes magic that makes it possible to use in Hydrozoa programs need the `hydrozoa.bin` runtime file to upload their code to a robot, which can be generated by building this repository. -On a system with the Rust programming language installed, start by running this command to install `cargo-v5`: +To begin, ensure you have both the Rust programming language (`cargo`) and the ARM Embedded Toolchain (`arm-none-eabi-gcc`) available on your system. -``` +This project also depends on `cargo-v5`, which you can install by running this command: + +```shell cargo install cargo-v5 ``` Then, run this command to build the project: -``` +```shell cargo v5 build --release ``` diff --git a/docs/pipeline.md b/docs/pipeline.md new file mode 100644 index 0000000..42e35ce --- /dev/null +++ b/docs/pipeline.md @@ -0,0 +1,98 @@ +# How Hydrozoa runs a program + +## Step 1: Language build tools + +Hydrozoa relies on a language's own build tools to create a WebAssembly (WASM) binary that it can load when the user starts their program. We chose WASM because of its wide language support - everything from Rust to JavaScript can be compiled to it. However, the VEX brain does not understand WASM bytecode out of the box, so we include a seperate runtime which does. + +In the case of Java, the language was designed to target the Java Virtual Machine (JVM) rather than WASM. This means we need to use a custom compiler, which is, at the moment, [TeaVM](https://teavm.org). If you are using the Hydrozoa Gradle plugin, TeaVM's setup & invocation is handled automatically while running the `build` or `upload` tasks. + +## Step 2: Uploading + +Hydrozoa programs are bigger than C++ or Rust programs because they include a full interpreter and bindings to the VEX SDK, not to mention the actual user code itself. Thus, the upload process is split into two files: the runtime and the user program. The runtime contains everything that usually doesn't need to be reuploaded, which means the interpreter, VEX startup code, bindings to the VEX SDK, and the TeaVM support library. It current exists on the brain as a single `libmutliv_runtime.bin` file, also this is subject to change. In contrast, the user program contains WASM-formatted data that the runtime is expected to load. Unlike the runtime, there can be multiple versions of a user program in different program slots. While uploading a program with the `hydrozoa` CLI, these upload progress for the runtime is marked with `lib` and the progress of the user program is marked with `bin`. + +There tend to be very limited size constraints when uploading to the brain. The `wasm-opt` tool from Binaryen can help shrink the user code when running it like so: + +```shell +wasm-opt -Oz -o optimized.wasm robot.wasm +``` + +This is not run automatically during a Gradle upload because then Binaryen would need to be installed manually by the user. + +## Step 3: Startup + +Hydrozoa uses a version of vexide-startup which has a modified linker script to support VEXos file linking. Before the program starts, VEXos loads the runtime to `0x03800000` and the user program to `0x07800000`. It then begins execution at `0x03800020`, which is handled by vexide-startup. After vexide-startup passes execution to the runtime, Hydrozoa reads the program from memory, initializes the interpreter (which is current wasm3), and begins execution. + +### User program format + +VEXos does not include the length of a file when linking it. Thus, the CLI prepends the user program with an integer equal to the program's length before uploading it. The runtime knows about this format and uses it to retrieve the linked wasm file as a Rust `&[u8]` slice. + +```txt + 0x07800000 + │ + ▼ +┌──────────┐┌───────┐┌───────────────────┐ +│End of ││Program││WASM user program │ +│Runtime ││Header ││(length: value of │ +│ ││ ││program header). │ +│ ││(u32) ││ │ +│ ││ ││ │ +│ ││ ││ │ +│ ││ ││ │ +│ ││ ││ │ +└──────────┘└───────┘└───────────────────┘ + ▲ + │ +``` + +## Step 4: Execution + +Running a program on a VEX is only useful if it can do something with the VEX hardware, so Hydrozoa's runtime provides functions that WASM programs can import and use to access peripherals. + +### The "vex" module + +Functions imported from the `"vex"` module are used to access VEX peripherals and control the VEX robot. They are generally direct recreations of VEX SDK functions from the `vex-sdk` Rust crate and are likely similar to those defined in `libv5rts.a`. + +For example, the following Rust program could theoretically be compiled to WASM, and when run under Hydrozoa, would draw a square to the VEX's display and then immediately exit: + +```rs +#[link(wasm_import_module = "vex")] +unsafe extern "C" { + fn vexDisplayForegroundColor(col: u32); + fn vexDisplayRectFill(x1: i32, y1: i32, x2: i32, y2: i32); +} + +#[unsafe(no_mangle)] +extern "C" fn start() { + unsafe { + vexDisplayForegroundColor(0xFFFFFF); + vexDisplayRectFill(20, 20, 120, 120); + } +} +``` + +While most signatures exported from the `"vex"` module are one-to-one with their `vex-sdk` counterpart, ones that deal in pointers have been slightly modified. For example, the functions that take a `V5_DeviceT` now take a `u32`. If the WASM program attempts to cast this number to a pointer and dereference it, the operation will fail, because WASM is executed in a memory sandbox. + +WASM programs *must* call the `vexTasksRun` function from the `"vex"` module at least one time every 2 milliseconds in order to update sensors, perform basic serial I/O, and ensure the correct operation of the runtime. + +```rs +#[link(wasm_import_module = "vex")] +unsafe extern "C" { + fn vexDeviceGetByIndex(index: u32) -> u32; + fn vexDeviceMotorVoltageSet(device: u32, voltage: i32); + fn vexTasksRun(); +} + +#[unsafe(no_mangle)] +extern "C" fn start() { + unsafe { + // Get the motor on smart port 1 + let device_handle: u32 = vexDeviceGetByIndex(0); + // Set it to 12 volts (full power) + vexDeviceMotorVoltageSet(device_handle, 12 * 1000); + // Loop so that the program doesn't exit + loop { + vexTasksRun(); + } + } +} +``` diff --git a/lib.bin b/lib.bin deleted file mode 100644 index fcf24e3da3c2258425130b8024272fd618c0f0e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmeZB&B@7E2+uFdNnrp094G`G diff --git a/slot0.bin b/slot0.bin deleted file mode 100644 index 3adc888f569603bd2140e01426a882e4bfbf60fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 75287 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 diff --git a/slot0_lib.bin b/slot0_lib.bin deleted file mode 100644 index a9ff052ecbc669e8ee236510b879d059d0245591..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32 jcmb2|=3oGW|DQe1o;(@OabEwFXCec`Umk}59-ssOrq~I>