diff --git a/docs/Hardware.md b/docs/Hardware.md index 216b43b..3cf92a4 100644 --- a/docs/Hardware.md +++ b/docs/Hardware.md @@ -1,22 +1,34 @@ # Wasm3 hardware support -- Arduino MKR WiFi 1010 -- Arduino MKR1000 -- Arduino Due -- Arduino 101 -- Espressif ESP32 -- Espressif ESP8266 -- Particle Photon, Electron, Argon, Boron, Xenon -- Air602 (WinnerMicro W600) -- Realtek RTL8711 -- Nordic nRF51822 -- Nordic nRF52832 -- Teensy 3.1/3.2 (NXP MK20DX256VLH7) -- Teensy 4.0 (NXP iMXRT1062) -- P-Nucleo WB55RG (ST STM32WB55RG) -- Blue Pill (ST STM32F103C8T6) -- MXChip AZ3166 (EMW3166) -- Sipeed MAIX (Kendryte K210) -- SiFive HiFive1 (Freedom E310) -- Fomu (RISC-V on Lattice ICE40UP5K FPGA) -- Wicked Device WildFire (AVR ATmega1284) +Device | Chipset | Architecture | Clock | Flash | RAM +--- |:---: | --- | -----:| --- | --- +Espressif ESP32 | | Xtensa LX6 | 240 MHz | 4 MB | 520KB +Particle Argon, Boron, Xenon | nRF52840 | Cortex-M4F | 64MHz | 1 MB | 256KB +Particle Photon, Electron | STM32F205 | Cortex-M3 | 120Mhz | 1 MB | 128KB +Air602 | WM W600 | Cortex-M3 | 80MHz | 1 MB | 160KB+128KB +Realtek RTL8711 | | Cortex-M3 | 166MHz | 2 MB | 2 MB+512KB +Nordic nRF52840 | | Cortex-M4F | 64MHz | 1 MB | 256KB +Nordic nRF52833 | | Cortex-M4F | 64MHz | 512KB | 128KB +P-Nucleo WB55RG | ST STM32WB55RG | Cortex-M4F | 64 MHz | 1 MB | 256KB +Teensy 4.0 | NXP iMXRT1062 | Cortex-M7 | 600MHz | 2 MB | 1 MB +MXChip AZ3166 | EMW3166 | Cortex-M4 | 100MHz | 1 MB+2 MB | 256KB +Arduino Due | AT91SAM3X8E | Cortex-M3 | 84 MHz | 512KB | 96KB +Sipeed MAIX | Kendryte K210 | RV64IMAFDC | 400MHz | 16 MB | 8 MB +SiFive HiFive1 | Freedom E310 | RV32IMAC | 320MHz | 16 MB | 16KB +Fomu (soft CPU) | Lattice ICE40UP5K | RV32I | 12MHz | 1 MB | 128KB + +## Limited support + +The following devices can run Wasm3, however they cannot afford to allocate even a single Linear Memory page (64KB). +This means `memoryLimit` should be set to the actual amount of RAM available, and that in turn usually breaks the allocator of the hosted Wasm application (which still asumes the page is 64KB and performs OOB access). + +Device | Chipset | Architecture | Clock | Flash | RAM +--- |:---: | --- | -----:| --- | --- +Blue Pill | STM32F103 | Cortex-M3 | 72 MHz | 64KB | 20KB +Arduino 101 | | Intel Curie | 32 MHz | 196KB | 24KB +Arduino MKR* | SAMD21 | Cortex-M0+ | 48 MHz | 256KB | 32KB +Espressif ESP8266 | | Xtensa L106 | 160 MHz | 4 MB | ~50KB (available) +Nordic nRF51822 | | Cortex-M0 | 16MHz | 128/256KB | 16/32KB +Nordic nRF52832 | | Cortex-M4F | 64MHz | 256/512KB | 32/64KB +Teensy 3.1/3.2 | NXP MK20DX256 | Cortex-M4 | 72MHz | 288KB | 64KB +Wicked Device WildFire | AVR ATmega1284 | 8-bit AVR | 20MHz | 128KB | 16KB