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