We now have native compilation for ESP32! That opens a lot of possibilities!
Mirage is available for ESP32 target, it allows to build complex applications for this platform, such as an HTTPS server.
All this work is stored under a Github organization:
well-typed-lightbulbs. Native backend
OCaml 4.06.0 with xtensa target and custom settings to build the bytecode runtime on the ESP32. The best way to have a functional cross-esp32 toolchain is to install the
ocaml-esp32 opam package from opam-cross-esp32. It requires an
4.06.0+32bit base compiler.
I have code generation and linking working. This is an example with the files I used to build my native hello world!
Cross-compilation of a Mirage unikernel
Mirage unikernel samples
Three sample docker scripts that build for ESP32:
esp32-docker-samples. They build C, OCaml and Mirage code. Three sample Mirage applications:
hello_world: a basic printer.
ap_dhcp: an access point delivering IPs trough DHCP.
lcd_wifi_demo: makes use of network and lcd screen features.