diff --git a/README.md b/README.md index 153967b70..da224ea81 100644 --- a/README.md +++ b/README.md @@ -1,45 +1,50 @@ -[![Build Status](https://drone.schleiser.de/api/badges/future-proof-iot/RIOT-rs/status.svg?ref=refs/heads/main)](https://drone.schleiser.de/future-proof-iot/RIOT-rs) - # RIOT-rs +[![Build Status][build-badge]][build-info] +[![Documentation][doc-badge]][documentation-mdbook] +[![Matrix][matrix-badge]][matrix-link] - Rust & RIOT OS combined for ergonomic embedded development +> Rust & RIOT combined for ergonomic embedded development -This is an experimental project trying to provide a nice base OS for embedded -development on low-end IoT devices (with some kilobytes of RAM/flash, think Cortex-M). -It combines the awesome Rust embedded ecosystem with RIOT OS. +This is an experimental project to provide a nice base OS for embedded +development on low-end IoT devices (with some kilobytes of RAM/flash, think +Cortex-M). It combines the awesome Rust embedded ecosystem with +[RIOT](https://github.com/RIOT-OS/RIOT). **This is highly experimental. Expect heavy changes and breakage!** If you're looking for a more production ready way of writing RIOT applications in Rust, check out [riot-wrappers](https://gitlab.com/etonomy/riot-wrappers). -## Supported hardware - -This currently only supports the Nordic nrf52840dk and the Raspberry Pi Pico. - ## Goals -- improve RIOT OS using the merits of Rust. +- improve RIOT using the merits of Rust. - provide a "rusty" development workflow (e.g., using cargo / crates.io) - provide a nice Rust API, framework and collection of crates suitable for embedded development - rewrite parts of RIOT in Rust to improve robustness and maintainability +## Supported hardware + +The following list of hardware is currently supported + - [Nordic nRF52840 DK](https://www.nordicsemi.com/Products/Development-hardware/nRF52840-DK) + - [Raspberry Pi Pico](https://www.raspberrypi.com/products/raspberry-pi-pico/) + ## Status The current iteration of RIOT-rs combines [embassy](https://embassy.dev/) with a preemptive scheduler and adds some integration and build system work. -It's highly experimental, expect frequent changes and breakage. ## Quickstart -Assuming you have a Nordic nrf52840dk connected, this should get you somewhere: +Assuming you have a Nordic nrf52840dk connected, the following guidelines +provides instructions for flashing and running the [`hello-world` +example](https://github.com/future-proof-iot/RIOT-rs/tree/main/examples/hello-world): ### Prerequisites -1.install needed system dependencies. On Ubuntu, this should be sufficient: +1.install needed system dependencies. On Ubuntu, the following is sufficient: - apt-get install build-essential curl git python3 pkg-config \ + apt install build-essential curl git python3 pkg-config \ libssl-dev llvm-dev cmake libclang-dev gcc-arm-none-eabi \ clang libnewlib-nano-arm-none-eabi unzip lld ninja-build @@ -54,21 +59,30 @@ Assuming you have a Nordic nrf52840dk connected, this should get you somewhere: 1. install rust targets: `laze build install-toolchain` -### Run some example +### Run the example 1. Compile, flash and the hello-world example using `probe-rs run` laze -C examples/hello-world build -b nrf52840dk -s probe-rs-run run +![Example](./doc/hello-world_render.svg) + ## More information -Please look [here](doc/build_system.md) for more usage information. +Please look [at the build system documentation](doc/build_system) for more usage +information. ## Minimum Supported Rust Version (MSRV) RIOT-rs makes heavy use of Rust unstable features. For the time being, it is recommended to use a current nightly. +## Coding Conventions + +Please see the chapter on +[coding conventions](https://future-proof-iot.github.io/RIOT-rs/dev/coding-conventions.html) +in the documentation. + ## Copyright & License RIOT-rs is licensed under either of @@ -88,3 +102,10 @@ Copyright (C) 2020-2023 Freie Universität Berlin, Inria, Kaspar Schleiser Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions. + +[build-badge]: https://github.com/future-proof-iot/RIOT-rs/actions/workflows/main.yml/badge.svg +[build-info]: https://github.com/future-proof-iot/RIOT-rs/actions/workflows/main.yml +[matrix-badge]: https://img.shields.io/badge/chat-Matrix-brightgreen.svg +[matrix-link]: https://matrix.to/#/#RIOT-rs:matrix.org +[doc-badge]: https://img.shields.io/badge/Documentation-%F0%9F%93%94-blue +[documentation-mdbook]: https://future-proof-iot.github.io/RIOT-rs/dev/ diff --git a/doc/hello-world_render.svg b/doc/hello-world_render.svg new file mode 100644 index 000000000..8f284dd40 --- /dev/null +++ b/doc/hello-world_render.svg @@ -0,0 +1,377 @@ + + + + + + + + + + + + + + $ $ l $ la $ laz $ laze $ laze $ laze - $ laze -C $ laze -C $ laze -C e $ laze -C ex $ laze -C exa $ laze -C exam $ laze -C examp $ laze -C exampl $ laze -C example $ laze -C examples $ laze -C examples/ $ laze -C examples/h $ laze -C examples/he $ laze -C examples/hel $ laze -C examples/hell $ laze -C examples/hello $ laze -C examples/hello- $ laze -C examples/hello-w $ laze -C examples/hello-wo $ laze -C examples/hello-wor $ laze -C examples/hello-worl $ laze -C examples/hello-world $ laze -C examples/hello-world $ laze -C examples/hello-world b $ laze -C examples/hello-world bu $ laze -C examples/hello-world bui $ laze -C examples/hello-world buil $ laze -C examples/hello-world build $ laze -C examples/hello-world build $ laze -C examples/hello-world build - $ laze -C examples/hello-world build -b $ laze -C examples/hello-world build -b $ laze -C examples/hello-world build -b n $ laze -C examples/hello-world build -b nr $ laze -C examples/hello-world build -b nrf $ laze -C examples/hello-world build -b nrf5 $ laze -C examples/hello-world build -b nrf52 $ laze -C examples/hello-world build -b nrf528 $ laze -C examples/hello-world build -b nrf5284 $ laze -C examples/hello-world build -b nrf52840 $ laze -C examples/hello-world build -b nrf52840d $ laze -C examples/hello-world build -b nrf52840dk $ laze -C examples/hello-world build -b nrf52840dk $ laze -C examples/hello-world build -b nrf52840dk - $ laze -C examples/hello-world build -b nrf52840dk -s $ laze -C examples/hello-world build -b nrf52840dk -s $ laze -C examples/hello-world build -b nrf52840dk -s p $ laze -C examples/hello-world build -b nrf52840dk -s pr $ laze -C examples/hello-world build -b nrf52840dk -s pro $ laze -C examples/hello-world build -b nrf52840dk -s prob $ laze -C examples/hello-world build -b nrf52840dk -s probe $ laze -C examples/hello-world build -b nrf52840dk -s probe- $ laze -C examples/hello-world build -b nrf52840dk -s probe-r $ laze -C examples/hello-world build -b nrf52840dk -s probe-rs $ laze -C examples/hello-world build -b nrf52840dk -s probe-rs- $ laze -C examples/hello-world build -b nrf52840dk -s probe-rs-r $ laze -C examples/hello-world build -b nrf52840dk -s probe-rs-ru $ laze -C examples/hello-world build -b nrf52840dk -s probe-rs-run $ laze -C examples/hello-world build -b nrf52840dk -s probe-rs-run $ laze -C examples/hello-world build -b nrf52840dk -s probe-rs-run r $ laze -C examples/hello-world build -b nrf52840dk -s probe-rs-run ru $ laze -C examples/hello-world build -b nrf52840dk -s probe-rs-run run $ laze -C examples/hello-world build -b nrf52840dk -s probe-rs-run run laze -C examples/hello-world build -b nrf52840dk -s probe-rs-run runlaze: project root: /tmp/RIOT-rs relpath: examples/hello-world project_file: laze-project.ymllaze: building all for nrf52840dklaze: reading cache: No such file or directory (os error 2)laze: reading 18 files took 1.164387mslaze: stat'ing 18 files took 19.13µsconfiguring hello-world for nrf52840dkconfigured 1 builds (took 2.092584ms).laze: writing cache took 19.67µs.laze: executing task run for builder nrf52840dk bin hello-world Compiling proc-macro2 v1.0.78 Compiling unicode-ident v1.0.12 Compiling cortex-m v0.7.7 Compiling critical-section v1.1.2 Compiling semver-parser v0.7.0 Compiling nb v1.1.0 Compiling void v1.0.2 Compiling syn v1.0.109 Compiling vcell v0.1.3 Compiling bitfield v0.13.2 Compiling autocfg v1.1.0 Compiling cortex-m-rt v0.7.3 Compiling cfg-if v1.0.0 Compiling strsim v0.10.0 Compiling cortex-m-semihosting v0.5.0 Compiling serde v1.0.193 Compiling libc v0.2.151 Compiling typewit_proc_macros v1.8.1 Compiling portable-atomic v1.6.0 Compiling futures-task v0.3.29 Compiling rustix v0.38.28 Compiling futures-core v0.3.29 Compiling litrs v0.4.1 Compiling futures-util v0.3.29 Building [ ] 0/196: serde(build.rs), portable-atomic(build.rs), f... Compiling nb v0.1.3 Building [ ] 1/196: serde(build.rs), portable-atomic(build.rs), f... Compiling volatile-register v0.2.2 Building [ ] 2/196: serde(build.rs), portable-atomic(build.rs), f... Compiling bitflags v2.4.2 Compiling riot-rs-runqueue v0.1.2 (/tmp/RIOT-rs/src/riot-rs-runqueue) Building Building [ ] 4/196: serde(build.rs), portable-atomic(build.rs), f... Compiling const_panic v0.2.8 Building [ ] 5/196: serde(build.rs), portable-atomic(build.rs), c... Compiling hashbrown v0.12.3 Building [ ] 6/196: serde(build.rs), portable-atomic(build.rs), c... Compiling embedded-hal v0.2.7 Building [ ] 7/196: serde(build.rs), portable-atomic(build.rs), c... Compiling os_str_bytes v6.6.1 Building [> ] 8/196: serde(build.rs), portable-atomic(build.rs), c... Compiling semver v0.9.0 Building [> ] 9/196: serde(build.rs), portable-atomic(build.rs), c... Compiling linux-raw-sys v0.4.12 Building [> ] 10/196: serde(build.rs), portable-atomic(build.rs), c... Compiling nrf52840-pac v0.12.2 (https://github.com/kaspar030/nrf-pacs?branch=riot-rs#58ec00b7) Building [> ] 11/196: serde(build.rs), portable-atomic(build.rs), c... Building [> ] 12/196: serde(build.rs), portable-atomic(build.rs), c... Compiling heapless v0.8.0 Building [> ] 14/196: serde(build.rs), portable-atomic(build.rs), c... Compiling byteorder v1.5.0 Building [> ] 15/196: serde(build.rs), portable-atomic(build.rs), b... Compiling serde_json v1.0.108 Building [=> ] 17/196: serde(build.rs), portable-atomic(build.rs), b... Building [=> ] 18/196: serde(build.rs), portable-atomic(build.rs), b... Building [=> ] 20/196: serde(build.rs), portable-atomic(build.rs), b... Building [=> ] 21/196: serde(build.rs), portable-atomic(build.rs), b... Compiling fastrand v2.0.1 Building [=> ] 22/196: serde(build.rs), portable-atomic(build.rs), b... Compiling rustc_version v0.2.3 Building [==> ] 23/196: serde(build.rs), portable-atomic(build.rs), b... Building [==> ] 25/196: portable-atomic(build.rs), byteorder, const_p... Compiling clap_lex v0.2.4 Building [==> ] 27/196: portable-atomic(build.rs), byteorder, const_p... Compiling bitflags v1.3.2 Building [==> ] 28/196: portable-atomic(build.rs), byteorder, const_p... Compiling pin-project-lite v0.2.13 Building [==> ] 29/196: portable-atomic(build.rs), byteorder, const_p... Building [==> ] 30/196: portable-atomic(build.rs), byteorder, const_p... Compiling embedded-hal-async v1.0.0 Building [===> ] 31/196: portable-atomic(build.rs), byteorder, const_p... Compiling typewit v1.9.0 Building [===> ] 33/196: portable-atomic(build.rs), byteorder, const_p... Compiling hash32 v0.3.1 Building [===> ] 34/196: portable-atomic(build.rs), byteorder, const_p... Building [===> ] 35/196: portable-atomic(build.rs), byteorder, const_p... Compiling cbindgen v0.26.0 Compiling ufmt-write v0.1.0 Building [===> ] 37/196: portable-atomic(build.rs), const_panic, serde... Compiling riot-rs-rt v0.1.0 (/tmp/RIOT-rs/src/riot-rs-rt) Building [====> ] 38/196: portable-atomic(build.rs), const_panic, serde... Compiling termcolor v1.4.0 Building [====> ] 39/196: portable-atomic(build.rs), const_panic, serde... Compiling textwrap v0.16.0 Building [====> ] 40/196: portable-atomic(build.rs), const_panic, serde... Building [====> ] 41/196: portable-atomic(build.rs), const_panic, rusti... Compiling fnv v1.0.7 Building [====> ] 42/196: fastrand, hashbrown, hash32, rustix(build.rs)... Compiling embedded-io-async v0.6.1 Building [====> ] 43/196: fastrand, hashbrown, hash32, rustix(build.rs)... Compiling indexmap v1.9.3 Compiling ryu v1.0.16 Building [====> ] 45/196: indexmap(build.rs), fastrand, hashbrown, rust... Building [====> ] 45/196: indexmap(build.rs), fastrand, hashbrown, rust... Building [=====> ] 46/196: indexmap(build.rs), fastrand, hashbrown, rust... Building [=====> ] 47/196: indexmap(build.rs), fastrand, hashbrown, strs... Building [=====> ] 48/196: indexmap(build.rs), fastrand, hashbrown, strs... Compiling ident_case v1.0.1 Building [=====> ] 49/196: indexmap(build.rs), fastrand, hashbrown, strs... Compiling pin-utils v0.1.0 Building [=====> ] 50/196: indexmap(build.rs), fastrand, hashbrown, clap... Compiling embassy-time-driver v0.1.0 Compiling stable_deref_trait v1.2.0 Compiling stable_deref_trait v1.2.0 Building [=====> ] 52/196: indexmap(build.rs), hashbrown, embassy-time-d... Building [======> ] 53/196: indexmap(build.rs), hashbrown, embassy-time-d... Compiling embassy-time-queue-driver v0.1.0 Compiling itoa v1.0.10 Building [======> ] 55/196: indexmap(build.rs), hashbrown, embassy-time-d... Compiling num-traits v0.2.17 Building [======> ] 57/196: indexmap(build.rs), hashbrown, embassy-time-d... Compiling bare-metal v0.2.5 Compiling rtt-target v0.4.0 Building [======> ] 59/196: indexmap(build.rs), hashbrown, embassy-time-d... Compiling konst_kernel v0.3.8 Building [======> ] 60/196: indexmap(build.rs), hashbrown, embassy-time-d... Building [=======> ] 61/196: indexmap(build.rs), hashbrown, embassy-time-d... Compiling embassy-sync v0.5.0 Building [=======> ] 62/196: indexmap(build.rs), hashbrown, embassy-time-d... Compiling embedded-hal v1.0.0 Building [=======> ] 63/196: indexmap(build.rs), hashbrown, embassy-time-d... Building [=======> ] 64/196: indexmap(build.rs), rustix, embassy-time-driv... Building [=======> ] 65/196: indexmap(build.rs), rustix, embassy-time-driv... Compiling log v0.4.20 Building [=======> ] 66/196: indexmap(build.rs), rustix, embassy-time-driv... Compiling ld-memory v0.2.9 Building [========> ] 68/196: indexmap(build.rs), ld-memory, rustix, embass... Compiling az v1.2.1 Building [========> ] 69/196: indexmap(build.rs), ld-memory, rustix, embass... Building [========> ] 69/196: indexmap(build.rs), ld-memory, rustix, embass... Building [========> ] 70/196: indexmap(build.rs), ld-memory, rustix, embass... Building [========> ] 71/196: indexmap(build.rs), ld-memory, rustix, embass... Compiling konst v0.3.8 Building [========> ] 72/196: indexmap(build.rs), ld-memory, rustix, konst,... Compiling document-features v0.2.8 Building [========> ] 73/196: indexmap(build.rs), ld-memory, rustix, konst,... Building [========> ] 74/196: ld-memory, rustix, konst, proc-macro2, cbindg... Building [========> ] 75/196: ld-memory, rustix, konst, indexmap, proc-macr... Building [=========> ] 76/196: ld-memory, rustix, konst, indexmap, proc-macr... Building [=========> ] 78/196: ld-memory, rustix, konst, indexmap, proc-macr... Compiling embedded-io v0.6.1 Building [=========> ] 79/196: ld-memory, rustix, embedded-io, konst, indexm... Compiling typenum v1.17.0 Building [=========> ] 80/196: ld-memory, rustix, embedded-io, konst, indexm... Compiling heck v0.4.1 Building [=========> ] 81/196: ld-memory, rustix, embedded-io, konst, indexm... Building [=========> ] 81/196: ld-memory, rustix, embedded-io, konst, indexm... Compiling quote v1.0.35 Building [==========> ] 83/196: ld-memory, rustix, embedded-io, konst, indexm... Building [==========> ] 83/196: ld-memory, rustix, embedded-io, konst, indexm... Building [==========> ] 84/196: ld-memory, rustix, embedded-io, konst, indexm... Building [==========> ] 84/196: ld-memory, rustix, embedded-io, konst, indexm... Building [==========> ] 85/196: ld-memory, rustix, embedded-io, konst, indexm... Building [==========> ] 86/196: ld-memory, embassy-time-queue-driver, rustix,... Compiling embassy-hal-internal v0.1.0 (https://github.com/kaspar030/embassy?branch=for-riot-rs-140224#83506172) Building [==========> ] 87/196: ld-memory, embassy-time-queue-driver, rustix,... Building [==========> ] 88/196: ld-memory, embassy-time-queue-driver, rustix,... Building [==========> ] 89/196: ld-memory, embassy-time-queue-driver, rustix,... Building [==========> ] 90/196: ld-memory, embassy-time-queue-driver, rustix,... Compiling equivalent v1.0.1 Building [===========> ] 91/196: ld-memory, embassy-time-queue-driver, rustix,... Compiling fixed v1.24.0 Building [===========> ] 92/196: ld-memory, rustix, konst, indexmap, proc-macr... Compiling embedded-storage v0.3.1 Building [===========> ] 93/196: ld-memory, rustix, konst, indexmap, proc-macr... Building [===========> ] 94/196: ld-memory, rustix, konst, indexmap, proc-macr... Building [===========> ] 95/196: rustix, cortex-m, konst, indexmap, proc-macro... Compiling nrf52 v0.1.0 (/tmp/RIOT-rs/src/riot-rs-boards/nrf52) Compiling ref-cast v1.0.21 Building [===========> ] 97/196: rustix, cortex-m, konst, indexmap, proc-macro... Compiling hashbrown v0.14.3 Building [============> ] 98/196: rustix, cortex-m, konst, indexmap, proc-macro... Compiling syn v2.0.49 Building [============> ] 99/196: rustix, syn, cortex-m, konst, indexmap, proc-... Building [===========> ] 101/196: rustix, syn, cortex-m, konst, indexmap, proc-... Compiling embedded-storage-async v0.4.1 Building [============> ] 102/196: rustix, syn, cortex-m, konst, indexmap, proc-... Compiling half v2.3.1 Building [============> ] 103/196: rustix, syn, cortex-m, konst, indexmap, proc-... Compiling riot-rs-utils v0.1.0 (/tmp/RIOT-rs/src/riot-rs-utils) Building [============> ] 104/196: rustix, syn, cortex-m, konst, indexmap, proc-... Building [============> ] 105/196: rustix, syn, cortex-m, konst, indexmap, proc-... Building [============> ] 106/196: embassy-hal-internal(build), rustix, syn, cor... Compiling embassy-futures v0.1.1 Building [============> ] 107/196: rustix, syn, cortex-m, konst, indexmap, embas... Compiling rbi v0.1.1 (/tmp/RIOT-rs/src/lib/rbi) Building [============> ] 108/196: rbi, rustix, syn, cortex-m, konst, indexmap, ... Compiling embassy-executor v0.5.0 (https://github.com/kaspar030/embassy?branch=for-riot-rs-140224#83506172) Building [============> ] 109/196: rbi, rustix, syn, cortex-m, konst, indexmap, ... Building [=============> ] 110/196: rbi, rustix, syn, cortex-m, konst, indexmap, ... Building [=============> ] 111/196: rbi, rustix, syn, cortex-m, konst, indexmap, ... Building [=============> ] 111/196: rbi, rustix, syn, cortex-m, konst, indexmap, ... Building [=============> ] 112/196: rbi, rustix, fixed(build), syn, cortex-m, kon... Compiling winnow v0.5.40 Building [=============> ] 113/196: rbi, rustix, syn, cortex-m, konst, indexmap, ... Compiling bytemuck v1.14.0 Building [=============> ] 114/196: bytemuck, rustix, syn, cortex-m, konst, index... Building [=============> ] 115/196: bytemuck, rustix, syn, cortex-m, konst, index... Compiling toml_datetime v0.6.5 Building [=============> ] 116/196: bytemuck, rustix, syn, cortex-m, konst, index... Compiling ringbuffer v0.1.0 (/tmp/RIOT-rs/src/lib/ringbuffer) Building [=============> ] 117/196: bytemuck, rustix, syn, cortex-m, ringbuffer, ... Compiling riot-rs-buildinfo v0.1.0 (/tmp/RIOT-rs/src/riot-rs-buildinfo) Compiling riot-rs-buildinfo v0.1.0 (/tmp/RIOT-rs/src/riot-rs-buildinfo) Building [==============> ] 118/196: bytemuck, rustix, syn, ringbuffer, konst, emb... Compiling panic-semihosting v0.6.0 Building [==============> ] 119/196: bytemuck, rustix, syn, ringbuffer, konst, pro... Building [==============> ] 120/196: bytemuck, num-traits, rustix, syn, ringbuffer... Building [==============> ] 121/196: bytemuck, num-traits, rustix, syn, konst, pro... Building [==============> ] 122/196: bytemuck, num-traits, rustix, syn, konst, pro... Compiling atty v0.2.14 Building [==============> ] 123/196: bytemuck, num-traits, rustix, syn, konst, pro... Compiling rand_core v0.6.4 Compiling rand_core v0.6.4 Compiling embassy-usb-driver v0.1.0 Building [==============> ] 125/196: bytemuck, num-traits, rustix, syn, konst, pro... Compiling clap v3.2.25 Building [===============> ] 126/196: bytemuck, num-traits, rustix, syn, konst, pro... Compiling static_cell v2.0.0 Building [===============> ] 127/196: num-traits, rustix, syn, konst, proc-macro2, ... Building [===============> ] 129/196: num-traits, rustix, syn, proc-macro2, half, p... Building [===============> ] 129/196: num-traits, rustix, syn, proc-macro2, half, p... Building [===============> ] 130/196: num-traits, rustix, syn, proc-macro2, half, p... Building [===============> ] 132/196: num-traits, rustix, syn, proc-macro2, documen... Building [===============> ] 133/196: num-traits, rustix, syn, proc-macro2, documen... Building [================> ] 134/196: num-traits, rustix, syn, document-features, t... Building [================> ] 135/196: num-traits, rustix, syn, document-features, t... Building [================> ] 136/196: num-traits, rustix, syn, document-features, t... Building [================> ] 137/196: num-traits, rustix, syn, document-features, t... Building [================> ] 138/196: num-traits, rustix, syn, document-features, t... Building [================> ] 139/196: num-traits, rustix, syn, document-features, t... Building [================> ] 140/196: num-traits, riot-rs-buildinfo, rustix, syn, d... Building [================> ] 141/196: num-traits, riot-rs-buildinfo, rustix, syn, d... Building [=================> ] 142/196: num-traits, rustix, syn, document-features, h... Building [=================> ] 143/196: num-traits, rustix, syn, document-features, h... Building [=================> ] 144/196: num-traits, rustix, syn, document-features, h... Building [=================> ] 145/196: num-traits, rustix, syn, document-features, h... Compiling indexmap v2.1.0 Building [=================> ] 146/196: num-traits, rustix, syn, hashbrown, syn, az, ... Building [=================> ] 147/196: num-traits, rustix, syn, syn, az, typenum, wi... Building [=================> ] 148/196: num-traits, rustix, syn, syn, az, typenum, wi... Building [=================> ] 148/196: num-traits, rustix, syn, embassy-hal-internal... Compiling embassy-time v0.3.0 Building [==================> ] 149/196: num-traits, rustix, syn, embassy-hal-internal... Building [==================> ] 151/196: num-traits, rustix, syn, embassy-time, syn, a... Building [==================> ] 152/196: rustix, syn, embassy-time, syn, az, typenum, ... Building [==================> ] 153/196: rustix, syn, embassy-time, syn, fixed, az, em... Building [==================> ] 154/196: rustix, syn, syn, fixed, az, embassy-sync, wi... Compiling embassy-embedded-hal v0.1.0 Compiling tempfile v3.8.1 Building [==================> ] 154/196: rustix, syn, syn, fixed, az, embassy-sync, te... Building [==================> ] 155/196: rustix, syn, syn, fixed, az, tempfile, winnow... Building [==================> ] 156/196: syn, syn, fixed, az, tempfile, winnow, clap, ... Building [===================> ] 158/196: syn, syn, fixed, az, winnow, clap Building [===================> ] 159/196: syn, syn, fixed, winnow, clap Compiling toml_edit v0.21.1 Building [===================> ] 159/196: syn, toml_edit, syn, fixed, winnow, clap Building [===================> ] 160/196: syn, toml_edit, syn, fixed, clap Compiling darling_core v0.20.3 Building [===================> ] 160/196: darling_core, syn, toml_edit, syn, fixed, clap Compiling proc-macro-crate v3.1.0 Building [===================> ] 160/196: darling_core, syn, toml_edit, proc-macro-crat... Building [===================> ] 161/196: darling_core, syn, toml_edit, proc-macro-crat... Building [===================> ] 162/196: darling_core, syn, toml_edit, syn, fixed Compiling linkme-impl v0.3.21 Compiling serde_derive v1.0.193 Compiling ref-cast-impl v1.0.21 Building [===================> ] 163/196: darling_core, linkme-impl, toml_edit, serde_d... Compiling riot-rs-macros v0.1.0 (/tmp/RIOT-rs/src/riot-rs-macros) Building [===================> ] 164/196: darling_core, linkme-impl, serde_derive, syn,... Compiling cortex-m-rt-macros v0.7.0 Building [====================> ] 165/196: darling_core, linkme-impl, cortex-m-rt-macros... Building [====================> ] 166/196: darling_core, linkme-impl, cortex-m-rt-macros... Compiling darling_macro v0.20.3 Building [====================> ] 167/196: linkme-impl, cortex-m-rt-macros, serde_derive... Building [====================> ] 168/196: linkme-impl, cortex-m-rt-macros, serde_derive... Compiling linkme v0.3.21 Building [====================> ] 169/196: cortex-m-rt-macros, serde_derive, fixed, riot... Building [====================> ] 170/196: cortex-m-rt-macros, serde_derive, fixed, link... Building [====================> ] 171/196: cortex-m-rt-macros, serde_derive, fixed, darl... Building [====================> ] 172/196: serde_derive, fixed, cortex-m-rt, darling_macro Compiling riot-rs-threads v0.1.0 (/tmp/RIOT-rs/src/riot-rs-threads) Building [====================> ] 172/196: serde_derive, fixed, cortex-m-rt, nrf52840-pa... Building [=====================> ] 173/196: serde_derive, fixed, nrf52840-pac, riot-rs-th... Compiling darling v0.20.3 Building [=====================> ] 174/196: serde_derive, fixed, nrf52840-pac, riot-rs-th... Compiling embassy-executor-macros v0.4.1 Building [=====================> ] 175/196: serde_derive, embassy-executor-macros, fixed,... Building [=====================> ] 176/196: serde_derive, embassy-executor-macros, fixed,... Building [=====================> ] 177/196: serde_derive, embassy-executor-macros, fixed,... Building [=====================> ] 178/196: embassy-executor, serde_derive, fixed, nrf528... Building [=====================> ] 179/196: serde_derive, fixed, nrf52840-pac Building [=====================> ] 180/196: serde, fixed, nrf52840-pac Compiling toml v0.5.11 Building [=====================> ] 180/196: serde, serde_json, fixed, toml, nrf52840-pac Building [======================> ] 181/196: serde_json, fixed, toml, nrf52840-pac Building [======================> ] 181/196: serde_json, cbindgen, fixed, toml, nrf52840-pac Building [======================> ] 182/196: cbindgen, fixed, toml, nrf52840-pac Building [======================> ] 183/196: cbindgen, fixed, nrf52840-pac Building [======================> ] 184/196: cbindgen, nrf52840-pac Compiling riot-rs-core v0.1.0 (/tmp/RIOT-rs/src/riot-rs-core) Building [======================> ] 185/196: riot-rs-core(build.rs), nrf52840-pac Building [======================> ] 186/196: nrf52840-pac, riot-rs-core(build) Building [======================> ] 187/196: riot-rs-core, nrf52840-pac Building [======================> ] 188/196: nrf52840-pac Compiling embassy-nrf v0.1.0 (https://github.com/kaspar030/embassy?branch=for-riot-rs-140224#83506172) Building [======================> ] 188/196: embassy-nrf, nrf52, nrf52840-pac Compiling nrf52840dk v0.1.0 (/tmp/RIOT-rs/src/riot-rs-boards/nrf52840dk) Building [======================> ] 188/196: embassy-nrf, nrf52, nrf52840dk, nrf52840-pac Building [=======================> ] 189/196: embassy-nrf, nrf52840dk, nrf52840-pac Compiling riot-rs-boards v0.1.0 (/tmp/RIOT-rs/src/riot-rs-boards) Building [=======================> ] 189/196: riot-rs-boards, embassy-nrf, nrf52840dk, nrf5... Building [=======================> ] 190/196: riot-rs-boards, embassy-nrf, nrf52840-pac Building [=======================> ] 191/196: embassy-nrf, nrf52840-pac Building [=======================> ] 192/196: embassy-nrf Compiling riot-rs-embassy v0.1.0 (/tmp/RIOT-rs/src/riot-rs-embassy) Building [=======================> ] 192/196: riot-rs-embassy, embassy-nrf Compiling riot-rs v0.1.0 (/tmp/RIOT-rs/src/riot-rs) Building [=======================> ] 192/196: riot-rs-embassy, riot-rs, embassy-nrf Building [=======================> ] 193/196: riot-rs-embassy, embassy-nrf Building [=======================> ] 194/196: embassy-nrf Compiling hello-world v0.1.0 (/tmp/RIOT-rs/examples/hello-world) Building [=======================> ] 195/196: hello-world(bin) Finished release [optimized + debuginfo] target(s) in 11.86s Running `probe-rs run --chip nrf52840_xxAA ../../build/bin/nrf52840dk/hello-world/cargo/thumbv7em-none-eabi/release/hello-world` Erasing ⠁ [00:00:00] [------------------------------] 0 B/ 0 B @ 0 B/s (eta 0s ) Programming ⠁ [00:00:00] [------------------------------] 0 B/ 0 B @ 0 B/s (eta 0s ) Erasing ⠁ [00:00:00] [-----------------------------] 0 B/12.00 KiB @ 0 B/s (eta 0s ) Erasing ⠉ [00:00:00] [-----------------------------] 0 B/12.00 KiB @ 0 B/s (eta 0s ) Erasing ⠙ [00:00:00] [##########------------------] 4.00 KiB/12.00 KiB @ 19.95 KiB/s (eta 0s ) Erasing ⠚ [00:00:00] [###################---------] 8.00 KiB/12.00 KiB @ 22.24 KiB/s (eta 0s ) Erasing ✔ [00:00:00] [###########################] 12.00 KiB/12.00 KiB @ 37.52 KiB/s (eta 0s ) Programming ⠁ [00:00:00] [-----------------------------] 0 B/12.00 KiB @ 0 B/s (eta 0s ) Programming ⠉ [00:00:00] [##########------------------] 4.00 KiB/12.00 KiB @ 39.84 KiB/s (eta 0s ) Programming ⠙ [00:00:00] [###########################] 12.00 KiB/12.00 KiB @ 49.98 KiB/s (eta 0s ) Programming ✔ [00:00:00] [###########################] 12.00 KiB/12.00 KiB @ 51.91 KiB/s (eta 0s ) Finished in 0.564sriot_rs_rt::startup()nrf52840dk::init()nrf52::init()riot-rs-embassy::init()riot-rs-embassy::init_task()riot-rs-embassy::init_task() doneriot-rs-embassy::init() doneHello from main()! Running on a nrf52840dk board. + \ No newline at end of file