Tock

Tock is an embedded operating system written in Rust. It is designed to be able to run multiple concurrent, mutually distrustful applications on embedded platforms. For us most notably it explicitly supports the nRF52840 DK board and minimal BLE.

[😐] Bluetooth Status

As of the writing of this, the tock Bluetooth stack only supports advertising and passive scanning.

[🙂] Rust Status

Tock is written in Rust which makes it a very good candidate for developing code in Rust. But for user application code the libtock C library contains way more detailed examples than the libtock Rust library.

For BLE specifically there are only ble_advertising and ble_passive_scanning examples written in C. We additionally provide Rust ble_advertising and ble_scanning examples, but notable in them is that to use the BLE features we had to directly use Tock's Syscall Interface as there are no wrappers provided for doing so.

[😄] Renode Status

Tock works in Renode with an adjusted CPU configuration that accounts for some missing registers which otherwise cause a bootloop.

Provided are Dockerfiles for building the examples and directly running them in renode.