Zephyr
Zephyr is a small real-time operating system for connected, resource-constrained and embedded devices written in C.
For us the most interesting parts are the nrf52840dk
and BLE support in the context of Rust.
[đ] Bluetooth Status
Zephyr's Bluetooth Stack is highly configurable and Bluetooth v5.3 compliant. Support for all combinations of Host and Controllers is provided and the stack generally is Bluetooth-SIG qualified.
[âšī¸] Rust Status
There is no official Rust support for Zephyr.
We in particular looked at tylerwhall/zephyr-rust which makes it possible to write Rust code for Zephyr but lacks any support for Bluetooth features.
[đ] Renode Status
The main demonstrations of Renode's BLE capabilities is done on Zephyrs BLE examples and documented here. This is for C code though. As at the time of writing there are no Rust bindings for the Bluetooth stack we can not evaluate the Rust side of this too deeply.
Our experiments with tylerwhall/zephyr-rust showed that it works on their example projects and building them for the nrf52840dk_nrf52840
.
The crash is according to their README intended. For the serial output to show in Renode the repl
for the nrf52840
needs to be modified so that easyDMA is off for the UART ports:
uart0: UART.NRF52840_UART @ sysbus 0x40002000
easyDMA: false
-> nvic@2
uart1: UART.NRF52840_UART @ sysbus 0x40028000
easyDMA: false
-> nvic@40