BBC micro:bit (MicroRust) 開発環境のインストール
micro:bit 公式: Micro:bit 教育財団 | micro:bit
公式: Introduction - MicroRust
ソースコード: nrf-rs/microbit: A Rust crate for BBC micro:bit development
依存関係のインストール
公式: Install dependencies - nrf-rs/microbit: A Rust crate for BBC micro:bit development
$ cargo binstall probe-rs-tools flip-link
INFO resolve: Resolving package: 'probe-rs-tools' INFO resolve: Resolving package: 'flip-link' INFO resolve: Verified signature for package 'flip-link-0.1.10-x86_64-unknown-linux-gnu': timestamp:1736388854 file:flip-link-0.1.10-x86_64-unknown-linux-gnu.tar.gz hashed WARN The package flip-link v0.1.10 (x86_64-unknown-linux-gnu) has been downloaded from third-party source QuickInstall INFO This will install the following binaries: INFO - flip-link => /home/tomoyan/.cargo/bin/flip-link WARN The package probe-rs-tools v0.29.0 (x86_64-unknown-linux-gnu) has been downloaded from github.com INFO This will install the following binaries: INFO - cargo-embed => /home/tomoyan/.cargo/bin/cargo-embed INFO - cargo-flash => /home/tomoyan/.cargo/bin/cargo-flash INFO - probe-rs => /home/tomoyan/.cargo/bin/probe-rs Do you wish to continue? [yes]/no ? INFO Installing binaries... INFO Installing binaries... INFO Done in 17.260016226s
サンプルコードの実行
$ cd microbit $ cargo run --release --manifest-path ./examples/display-blocking/Cargo.toml --features v1 --target thumbv6m-none-eabi
Cloning into 'microbit'... remote: Enumerating objects: 144, done. remote: Counting objects: 100% (144/144), done. remote: Compressing objects: 100% (117/117), done. remote: Total 144 (delta 29), reused 47 (delta 4), pack-reused 0 (from 0) Receiving objects: 100% (144/144), 57.64 KiB | 472.00 KiB/s, done. Resolving deltas: 100% (29/29), done.
$ cargo run --release --manifest-path ./examples/display-nonblocking/Cargo.toml --features v1 --target thumbv6m-none-eabi
Updating crates.io index Downloaded bare-metal v0.2.5 Downloaded cast v0.3.0 Downloaded cortex-m-rt-macros v0.7.5 Downloaded defmt-rtt v1.0.0 Downloaded half v2.4.1 Downloaded panic-halt v1.0.0 Downloaded cortex-m-rt v0.7.5 Downloaded rustc_version v0.2.3 Downloaded semver-parser v0.7.0 Downloaded bytemuck v1.16.3 Downloaded thiserror-impl v2.0.3 Downloaded semver v0.9.0 Downloaded thiserror v2.0.3 Downloaded proc-macro2 v1.0.92 Downloaded typenum v1.17.0 Downloaded cortex-m v0.7.7 Downloaded fixed v1.28.0 Downloaded volatile-register v0.2.2 Downloaded bitfield v0.13.2 Downloaded tiny-led-matrix v1.0.2 Downloaded syn v2.0.89 Downloaded nrf51-hal v0.18.0 Downloaded nrf-hal-common v0.18.0 Downloaded nrf51-pac v0.12.2 Downloaded 24 crates (1.3MiB) in 2.30s Compiling proc-macro2 v1.0.92 Compiling unicode-ident v1.0.12 Compiling semver-parser v0.7.0 Compiling cortex-m v0.7.7 Compiling nb v1.1.0 Compiling cortex-m-rt v0.7.5 Compiling semver v0.9.0 Compiling nb v0.1.3 Compiling vcell v0.1.3 Compiling az v1.2.1 Compiling typenum v1.17.0 Compiling rustc_version v0.2.3 Compiling critical-section v1.2.0 Compiling void v1.0.2 Compiling bare-metal v0.2.5 Compiling embedded-hal v0.2.7 Compiling quote v1.0.36 Compiling volatile-register v0.2.2 Compiling thiserror v2.0.3 Compiling syn v2.0.89 Compiling cfg-if v1.0.0 Compiling bitfield v0.13.2 Compiling fixed v1.28.0 Compiling nrf51-pac v0.12.2 Compiling half v2.4.1 Compiling nrf-hal-common v0.18.0 Compiling bytemuck v1.16.3 Compiling stable_deref_trait v1.2.0 Compiling embedded-dma v0.2.0 Compiling proc-macro-error-attr2 v2.0.0 Compiling embedded-io v0.6.1 Compiling defmt-macros v1.0.1 Compiling embedded-hal v1.0.0 Compiling cast v0.3.0 Compiling rand_core v0.6.4 Compiling embedded-storage v0.3.1 Compiling nrf51-hal v0.18.0 Compiling defmt v1.0.1 Compiling tiny-led-matrix v1.0.2 Compiling bitflags v1.3.2 Compiling defmt-rtt v1.0.0 Compiling panic-halt v1.0.0 Compiling proc-macro-error2 v2.0.1 Compiling cortex-m-rt-macros v0.7.5 Compiling thiserror-impl v2.0.3 Compiling defmt-parser v1.0.0 Compiling microbit-common v0.15.1 (/home/tomoyan/my_projects/microbit/microbit-common) Compiling microbit v0.15.1 (/home/tomoyan/my_projects/microbit/microbit) Compiling display-nonblocking v0.1.0 (/home/tomoyan/my_projects/microbit/examples/display-nonblocking) Finished `release` profile [optimized + debuginfo] target(s) in 33.59s Running `probe-rs run --chip nRF51822_xxAA --protocol swd target/thumbv6m-none-eabi/release/display-nonblocking` Erasing ✔ 100% [####################] 10.00 KiB @ 9.61 KiB/s (took 1s) Programming ✔ 100% [####################] 10.00 KiB @ 7.89 KiB/s (took 1s) Finished in 2.31s