1
0
Fork
You've already forked studio
0
Robust IoT development with Rust and RIOT-OS
  • Rust 61.1%
  • Makefile 32.3%
  • Shell 6.6%
2024年08月19日 15:18:41 +07:00
.github/workflows Remove use of (prebuilt) coap-server 2023年06月28日 12:45:10 +07:00
crates/mcu-emu Refactor with enum NetOpt 2023年05月16日 14:07:12 +07:00
examples xbd-psa: Update Cargo.lock 2024年08月19日 15:18:41 +07:00
RIOT @ca62e5d6f3 Bump submodule RIOT 2024年05月09日 11:04:39 +07:00
toolchain/xtensa Upgrade esp rustc to v1.74.0.1 2024年03月12日 13:51:35 +07:00
.gitignore Set up Rust xtensa and get 'examples/esp32-no_std' to build 2021年08月09日 21:55:50 +07:00
.gitmodules Remove submodule embassy 2024年06月19日 12:15:00 +07:00
LICENSE Add mcu-emu stub 2021年08月09日 13:28:31 +07:00
Makefile Trigger 'examples/xbd-psa' test 2024年08月19日 12:27:46 +07:00
README.md Clean up 2023年06月09日 11:18:20 +07:00

Minerva Studio

MIT licensed CI

Robust IoT development with Rust and RIOT-OS.

Repository map

/
 Makefile
 crates/
 mcu-emu .... emulator runner (`qemu-system-xtensa` or RIOT `native` board binary)
 examples/
 esp32-no_std .... bare `no_std` firmware with a minimal Rust module 'librustmod.a'
 xbd-base .... cross-`BOARD` (i.e. native/esp32) firmware for 'librustmod.a' demo
 xbd-psa .... cross-`BOARD` firmware for PSA demo
 xbd-py .... cross-`BOARD` firmware featuring MicroPython with a RFC8995 module 'libvoucher.a'
 xbd-net .... cross-`BOARD` firmware to test/develop networking protocols
 ...

Environments

Ubuntu 20.04 is supported and also being used for CI.

Getting started

After cloning the repo, first, set up the pre-configured RIOT/ESP32 toolchain:

$ make init

examples/esp32-no_std

A bare no_std ESP32 firmware with a minimal Rust module. Use make run to (build and) run the firmware. To exit the qemu-system-xtensa based runner, type Ctrl-a x.

$ make run

Upon running the firmware, a binary file called 'riot.esp32.bin' is generated. For test on the real ESP32 device, you can flash this image onto the device by following the Espressif's manual.

examples/xbd-base

A cross-BOARD firmware with a demo Rust module featuring the "semi_std" support (println!(), vec::*, Box, core2::io::*, etc.). This example would be a convenient template for you to start developing a new RIOT-OS firmware in Rust.

Use make run-native (or make run as default) to run it as RIOT native firmware; or use make run-esp32 for ESP32.

$ make run-native
$ make run-esp32

examples/xbd-py

This example demonstrates a cross-BOARD firmware running the MicroPython interpretor. After bootstraping, a Rust module called 'libvoucher.a' (which implements the RFC8995 Constrained Voucher) is loaded as Python module, and then its APIs are batch-tested.

$ make run-native
--snip--
Type "help()" for more information.
>>> ^C
native: exiting
$ make run-esp32
--snip--
>>> Quiting qemu...